ปัญหาการ insert ข้อมูลแล้วไม่ลง database ผมมือใหม่นะครับไม่ทราบว่าวิธีทำผมถูกวิธีรึเปล่าช่วยดูทีครับ C#
ปัญหาของผมก็คือ insert ข้อมูลแล้วไม่เพิ่มเข้าไปในดาต้าเบส
ขั้นตอนการทำของผม
-ผมสร้าง Data Base ด้วย VS2008 C# โดยการคลิ๊กขวาที่ Project > Add > New item > Data > Sevice-based database
-แล้วผมก็สร้าง Table (ID แบบ auto,Username,Password,Firstname,Lastname) จาก Sever Explorer
-แล้วก็เพิ่ม record เข้าไป 2 record
-แล้วก็สร้าง diagram และเซฟ
-แล้วก็ Add new data source
-แล้วผมก็ลากตารางจากหน้าต่าง data source ลงมาใส่ Form
-สั่ง Build(F6) และ Strat Dubug (F5)
-ผลลัพท์ที่ได้มี record โชว์ตามที่ผมเพิ่มเข้าไป 2 record
ต่อมาผมสร้างฟอร์มใหม่ขึ้นมาและทำการเพิ่ม textBox , Button (เพิ่มที่จะรับข้อมูลและเก็บลง database)
และเขียนโค๊ดลงไปที่ปุ่ม
Code (C#)
private void btnCreate_Click(object sender, EventArgs e)
{
if (txtFirstname_regis.Text != "" && txtLastname_regis.Text != ""
&& txtUsername_regis.Text != "" && txtPassword_regis.Text != "")
{
string isUS = "INSERT INTO usertable VALUES(@Firstname,@Lastname,@Username,@Password) ";
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\LoanUser.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
conn.Open();
SqlCommand cmd = new SqlCommand(isUS, conn);
SqlParameter param1 = new SqlParameter();
param1.ParameterName = "@Firstname";
param1.SqlDbType = SqlDbType.NVarChar;
param1.Value = txtFirstname_regis.Text;
SqlParameter param2 = new SqlParameter();
param2.ParameterName = "@Lastname";
param2.SqlDbType = SqlDbType.NVarChar;
param2.Value = txtLastname_regis.Text;
SqlParameter param3 = new SqlParameter();
param3.ParameterName = "@Username";
param3.SqlDbType = SqlDbType.NVarChar;
param3.Value = txtUsername_regis.Text;
SqlParameter param4 = new SqlParameter();
param4.ParameterName = "@Password";
param4.SqlDbType = SqlDbType.NVarChar;
param4.Value = txtPassword_regis.Text;
cmd.Parameters.Add(param1);
cmd.Parameters.Add(param2);
cmd.Parameters.Add(param3);
cmd.Parameters.Add(param4);
cmd.ExecuteNonQuery();
conn.Close();
txtFirstname_regis.Clear();
txtLastname_regis.Clear();
txtUsername_regis.Clear();
txtPassword_regis.Clear();
txtFirstname_regis.Focus();
}
else
{
MessageBox.Show("กรุณากรอกข้อมูลให้ครบถ้วน", "ผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
เมื่อกรอกข้อมูลและกดปุ่มข้อมูลไม่ถูกเก็บลง Data base
อยากทราบว่าเป็นเพราะอะไร (ผมไม่มีความรู้เรื่อง Connection ระหว่าง ฐานข้อมูล กับโปรแกรม ช่วยแนะนำแหล่งศึกษาทีครับ)Tag : .NET, MySQL, C#
Date :
2010-11-19 22:45:08
By :
iStrong
View :
5476
Reply :
8
มันมี Error แจ้งให้ทราบหรือเปล่าครับ และอีกอย่างการ INSERT ควรระบุชื่อฟิวด์ไปด้วยน่ะครับ หรือไม่ลองใช้การ Debug ทีล่ะ Step ครับ ว่ามันมี Error ตรงไหนครับ
ตัวอย่างการ C# Insert ลงฐานข้อมูล SQL Server อ่านได้ที่ Go to : (C#) ASP.NET SQL Server Add/Insert Record
Date :
2010-11-20 07:16:30
By :
webmaster
อีกอย่างที่ผมอยากทราบคือ การสร้างฐานข้อมูล และ การเชื่อมต่อฐานข้อมูลของผมผิดวิธีรึเปล่าครับ(ผมสร้างจาก VS2008 C# ไม่ได้เปิด SQL Sever นะครับ)
Date :
2010-11-20 10:58:59
By :
lkangelkl
ผมได้เป็นดูตัวอย่าง Code : (C#) ASP.NET SQL Server Add/Insert Record
และได้นำมาประยุกใช้ ปัญหาก็คือว่า
- พอใส่ข้อมูลแล้วกดปุ่ม Create มี Message box โชว์บอกว่า Insert succese
- แต่เมื่อ ออกจากโปรแกรมและกลับมาดูที่ฐานข้อมูล (ที่ Table ใน Sever explorer) ข้อมูลที่เพิ่มเข้ามาไม่มี มีแค่ 2 record เหมือนเดิมครับ
Code (C#)
private void btnCreate_Click(object sender, EventArgs e)
{
if (txtFirstname_regis.Text != "" && txtLastname_regis.Text != ""
&& txtUsername_regis.Text != "" && txtPassword_regis.Text != "")
{
string isUS = "INSERT INTO usertable (Username,Password,Firstname,Lastname) " +
"VALUES ('" + this.txtFirstname_regis.Text + "','" +
txtLastname_regis.Text + "','" + txtUsername_regis.Text + "','" +
txtPassword_regis.Text + "')";
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\LoanUser.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = isUS;
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Insert seccese", "Seccese");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
conn.Close();
conn = null;
txtFirstname_regis.Clear();
txtLastname_regis.Clear();
txtUsername_regis.Clear();
txtPassword_regis.Clear();
txtFirstname_regis.Focus();
}
else
{
MessageBox.Show("กรุณากรอกข้อมูลให้ครบถ้วน", "ผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Date :
2010-11-20 11:37:18
By :
lkangelkl
ช่วยทีนะครับ ไปไม่เป็นแล้ว
Date :
2010-11-20 20:18:00
By :
lkangelkl
แปลกจัง ถ้าไม่ Error มันก็ต้องเข้าซินะ
แล้วคุณรู้ได้งัยว่ามันไม่เข้า
เช็คยังไงครับ
Date :
2010-11-22 17:22:05
By :
watcharop
ผมก็เป็นเหมือน จขทก ครับ คือ ไม่ Error แต่ Insert ไม่เข้า ผมเช็คได้อย่างไร ผมเช็คจากการสร้าง Stored Proceduce ครับ ผมลองเขียน คิวรี่ ออกมา SLECT * FROM _____ ปรากฏออกมาเป็นตารางเปล่าๆเลย ทั้งที่ตอนรันโปรแกรมก็แอดเข้าได้ปกติ งงมาก
Date :
2013-09-27 08:10:36
By :
KAN
Load balance : Server 00