ช่วยหน่อยนะครับ Y_Y โปรเจคจบ พอกดรอบแรก Msbox ขึ้นปกติ ("กรุณากรอกข้อมูลให้ครบ"); แต่พอรอบที่2มัน Error ตรงการเชื่อมมต่อฐานข้อมููลอะครับ
ช่วยหน่อยนะครับ Y_Y โปรเจคจบ พอกดรอบแรก Msbox ขึ้นปกติ ("กรุณากรอกข้อมูลให้ครบ"); แต่พอแก้ไขข้อมูลเสร็จแล้วตกลงรอบที่2มัน Error ตรงการเชื่อมมต่อฐานข้อมููลอะครับ
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "" || textBox7.Text == "")
{
MessageBox.Show("กรุณากรอกข้อมูลให้ครบ");
}
if (textBox6.Text == textBox7.Text)
{
myConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\first\\โปรเจค\\Frist.accdb";
myConn.Open();
OleDbCommand mycommand = new OleDbCommand();
OleDbTransaction myTransaction;
OleDbParameter name = new OleDbParameter();
name.ParameterName = "@N";
name.OleDbType = OleDbType.Char;
name.Direction = ParameterDirection.Input;
name.Value = textBox1.Text;
OleDbParameter Sur = new OleDbParameter();
Sur.ParameterName = "@S";
Sur.OleDbType = OleDbType.Char;
Sur.Direction = ParameterDirection.Input;
Sur.Value = textBox2.Text;
OleDbParameter user = new OleDbParameter();
user.ParameterName = "@U";
user.OleDbType = OleDbType.Char;
user.Direction = ParameterDirection.Input;
user.Value = textBox5.Text;
OleDbParameter Pass = new OleDbParameter();
Pass.ParameterName = "@P";
Pass.OleDbType = OleDbType.Char;
Pass.Direction = ParameterDirection.Input;
Pass.Value = textBox6.Text;
OleDbParameter email = new OleDbParameter();
email.ParameterName = "@E";
email.OleDbType = OleDbType.Char;
email.Direction = ParameterDirection.Input;
email.Value = textBox3.Text;
OleDbParameter tel = new OleDbParameter();
tel.ParameterName = "@T";
tel.OleDbType = OleDbType.Char;
tel.Direction = ParameterDirection.Input;
tel.Value = textBox4.Text;
myTransaction = myConn.BeginTransaction();
mycommand.CommandText = "INSERT INTO [member]([M_name],[M_surname],[M_user],[M_pass],[M_email],[M_tel])VALUES(@N,@S,@U,@P,@E,@T)";
mycommand.CommandType = CommandType.Text;
mycommand.Transaction = myTransaction;
mycommand.Connection = myConn;
mycommand.Parameters.Add(name);
mycommand.Parameters.Add(Sur);
mycommand.Parameters.Add(user);
mycommand.Parameters.Add(Pass);
mycommand.Parameters.Add(email);
mycommand.Parameters.Add(tel);
mycommand.ExecuteNonQuery();
myTransaction.Commit();
}
else
{
MessageBox.Show("รหัสผ่านไม่ตรงกัน");
}
}Tag : .NET, C#
Date :
2012-10-23 09:06:20
By :
white31969
View :
1081
Reply :
19
กรุณาทำให้อ่านง่ายแบบนี้ด้วยน่ะ คราวหลัง คนช่วยตาลาย
Code (C#)
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "" || textBox7.Text == "")
{
MessageBox.Show("กรุณากรอกข้อมูลให้ครบ");
}
if (textBox6.Text == textBox7.Text)
{
myConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\first\\โปรเจค\\Frist.accdb";
myConn.Open();
OleDbCommand mycommand = new OleDbCommand();
OleDbTransaction myTransaction;
OleDbParameter name = new OleDbParameter();
name.ParameterName = "@N";
name.OleDbType = OleDbType.Char;
name.Direction = ParameterDirection.Input;
name.Value = textBox1.Text;
OleDbParameter Sur = new OleDbParameter();
Sur.ParameterName = "@S";
Sur.OleDbType = OleDbType.Char;
Sur.Direction = ParameterDirection.Input;
Sur.Value = textBox2.Text;
OleDbParameter user = new OleDbParameter();
user.ParameterName = "@U";
user.OleDbType = OleDbType.Char;
user.Direction = ParameterDirection.Input;
user.Value = textBox5.Text;
OleDbParameter Pass = new OleDbParameter();
Pass.ParameterName = "@P";
Pass.OleDbType = OleDbType.Char;
Pass.Direction = ParameterDirection.Input;
Pass.Value = textBox6.Text;
OleDbParameter email = new OleDbParameter();
email.ParameterName = "@E";
email.OleDbType = OleDbType.Char;
email.Direction = ParameterDirection.Input;
email.Value = textBox3.Text;
OleDbParameter tel = new OleDbParameter();
tel.ParameterName = "@T";
tel.OleDbType = OleDbType.Char;
tel.Direction = ParameterDirection.Input;
tel.Value = textBox4.Text;
myTransaction = myConn.BeginTransaction();
mycommand.CommandText = "INSERT INTO [member]([M_name],[M_surname],[M_user],[M_pass],[M_email],[M_tel])VALUES(@N,@S,@U,@P,@E,@T)";
mycommand.CommandType = CommandType.Text;
mycommand.Transaction = myTransaction;
mycommand.Connection = myConn;
mycommand.Parameters.Add(name);
mycommand.Parameters.Add(Sur);
mycommand.Parameters.Add(user);
mycommand.Parameters.Add(Pass);
mycommand.Parameters.Add(email);
mycommand.Parameters.Add(tel);
mycommand.ExecuteNonQuery();
myTransaction.Commit();
}
else
{
MessageBox.Show("รหัสผ่านไม่ตรงกัน");
}
}
Date :
2012-10-23 10:50:54
By :
dekkuza
Code (C#)
if(myCon.state==Connectiostate.open)myConn.Close();
//คุณจะเปิดการเชื่อมต่อใหม่โโยไม่ปิดตัวเก่าไม่ได้ครับต้องปิดการเชื่อมต่อก่อนนิ
//ปัญหาซำ้ซากของมือใหม่ T_T (ผมด้วย)
myConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\first\\โปรเจค\\Frist.accdb";
myConn.Open();
Date :
2012-10-23 10:54:36
By :
dekkuza
ขอบคุณมากๆเลยครับ ขออีกนิดได้มั้ยครับ คืออยากให้มันรีเฟรชฐานข้อมูลเลยตอนที่ แอดข้อมูลเข้าไปอะครับ
เพื่อที่จะloginตอนที่สมัครเสร็จน่ะครับ
Date :
2012-10-23 11:10:52
By :
white31969
บันทัดที่ 1 ของผมออันเดียวน่ะ .ใส่บันทัดที่ 11 ครับ
และพิมพ์เองน่ะห้ากอป ไม่งั้น Error แน่ เพราะผมพิมพ์ผิดถูกๆ
มันต้องเป็น
Code (C#)
if(myCon.State==Connectionstate.Open)myConn.Close();
Date :
2012-10-23 11:32:18
By :
dekkuza
ปิด Connection หล้ง
myTransaction.Commit(); ครับ
ตามที่คุณ dekkuza บอกน่ะครับ ------- >. if(myCon.State==Connectionstate.Open)myConn.Close();
แต่น่าจะใส่ try. ....catch. ... Finally ครอบก็ดีนะครับ
Date :
2012-10-23 11:47:48
By :
phaizz
ขอบคุณมากๆเลยครับ ขออีกนิดได้มั้ยครับ คืออยากให้มันรีเฟรชฐานข้อมูลเลยตอนที่ แอดข้อมูลเข้าไปอะครับ
เพื่อที่จะloginตอนที่สมัครเสร็จน่ะครับ แล้วก็เรื่องที่ดักตอนที่ใส่ค่าซ้ำกันในฐานข้อมูลอะครับ พรีเซนต์ พรุ้งนี้แล้ว Y_Y
Date :
2012-10-23 11:52:36
By :
white31969
จะได้ไม่ต้องถามหลายรอบ ตามนั้น(พิมพ์เองก็ดีน่ะจะได้ ไม่ error เพราะผมพิมพ์สดไม่ได้ใช้ Microsoft visual studio น่ะอิอิ)
Code (C#)
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "" || textBox7.Text == "")
{
MessageBox.Show("กรุณากรอกข้อมูลให้ครบ");
}
if (textBox6.Text == textBox7.Text)
{
try{
if(myCon.State==ConnectionState.Open){myCon.Close();}
myConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\first\\โปรเจค\\Frist.accdb";
myConn.Open();
OleDbCommand mycommand = new OleDbCommand();
OleDbTransaction myTransaction;
OleDbParameter name = new OleDbParameter();
name.ParameterName = "@N";
name.OleDbType = OleDbType.Char;
name.Direction = ParameterDirection.Input;
name.Value = textBox1.Text;
OleDbParameter Sur = new OleDbParameter();
Sur.ParameterName = "@S";
Sur.OleDbType = OleDbType.Char;
Sur.Direction = ParameterDirection.Input;
Sur.Value = textBox2.Text;
OleDbParameter user = new OleDbParameter();
user.ParameterName = "@U";
user.OleDbType = OleDbType.Char;
user.Direction = ParameterDirection.Input;
user.Value = textBox5.Text;
OleDbParameter Pass = new OleDbParameter();
Pass.ParameterName = "@P";
Pass.OleDbType = OleDbType.Char;
Pass.Direction = ParameterDirection.Input;
Pass.Value = textBox6.Text;
OleDbParameter email = new OleDbParameter();
email.ParameterName = "@E";
email.OleDbType = OleDbType.Char;
email.Direction = ParameterDirection.Input;
email.Value = textBox3.Text;
OleDbParameter tel = new OleDbParameter();
tel.ParameterName = "@T";
tel.OleDbType = OleDbType.Char;
tel.Direction = ParameterDirection.Input;
tel.Value = textBox4.Text;
myTransaction = myConn.BeginTransaction();
mycommand.CommandText = "INSERT INTO [member]([M_name],[M_surname],[M_user],[M_pass],[M_email],[M_tel])VALUES(@N,@S,@U,@P,@E,@T)";
mycommand.CommandType = CommandType.Text;
mycommand.Transaction = myTransaction;
mycommand.Connection = myConn;
mycommand.Parameters.Add(name);
mycommand.Parameters.Add(Sur);
mycommand.Parameters.Add(user);
mycommand.Parameters.Add(Pass);
mycommand.Parameters.Add(email);
mycommand.Parameters.Add(tel);
mycommand.ExecuteNonQuery();
myTransaction.Commit();
}
else
{
MessageBox.Show("รหัสผ่านไม่ตรงกัน");
}
}catch (exception ex){
//ทำอะไรสักอย่างหากเกิดข้อผิดผลาด
MessageBox.show(ex.message+ex.toString());
}finaly{
myCon.close();
}
}
Date :
2012-10-23 11:58:08
By :
dekkuza
แต่ถามหน่อย add parametor แบบนี้ได้ไหม มันน่าจะสั้นกว่า
หากที่แนะนำไปผิดผลาดอย่าว่ากัน
Code (JavaScript)
myCommand.parameters.add("@e",OleDbType.Char).value=xxxx.text
Date :
2012-10-23 12:01:08
By :
dekkuza
ได้แล้วครับขอบคุณมากๆๆๆๆ
ช่วยอีกนิดได้มั้ยอ่าครับคือตอนที่สมัครสมาชิก(โค๊ตนี้) อยากให้มันอัพเดตฐานข้อมูลทันทีเลยอะครับ เพราะเวลากดแอดหน้านี้ไปจะให้
หน้าloginขึ้นมาแล้วใส่รหัสได้ทันทีเลยอะครับ
Date :
2012-10-23 14:00:19
By :
white31969
ลองใส่ Response.Redirect("~/login.aspx"); ไปครับ
ประวัติการแก้ไข 2012-10-23 14:47:32
Date :
2012-10-23 14:45:33
By :
phaizz
ลองเพิ่มประมาณนี้
Code (C#)
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "" || textBox7.Text == "")
{
MessageBox.Show("กรุณากรอกข้อมูลให้ครบ");
}
Boolean result = false; // เพิ่ม 1
if (textBox6.Text == textBox7.Text)
{
try{
if(myCon.State==ConnectionState.Open){myCon.Close();}
myConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\first\\โปรเจค\\Frist.accdb";
myConn.Open();
OleDbCommand mycommand = new OleDbCommand();
OleDbTransaction myTransaction;
OleDbParameter name = new OleDbParameter();
name.ParameterName = "@N";
name.OleDbType = OleDbType.Char;
name.Direction = ParameterDirection.Input;
name.Value = textBox1.Text;
OleDbParameter Sur = new OleDbParameter();
Sur.ParameterName = "@S";
Sur.OleDbType = OleDbType.Char;
Sur.Direction = ParameterDirection.Input;
Sur.Value = textBox2.Text;
OleDbParameter user = new OleDbParameter();
user.ParameterName = "@U";
user.OleDbType = OleDbType.Char;
user.Direction = ParameterDirection.Input;
user.Value = textBox5.Text;
OleDbParameter Pass = new OleDbParameter();
Pass.ParameterName = "@P";
Pass.OleDbType = OleDbType.Char;
Pass.Direction = ParameterDirection.Input;
Pass.Value = textBox6.Text;
OleDbParameter email = new OleDbParameter();
email.ParameterName = "@E";
email.OleDbType = OleDbType.Char;
email.Direction = ParameterDirection.Input;
email.Value = textBox3.Text;
OleDbParameter tel = new OleDbParameter();
tel.ParameterName = "@T";
tel.OleDbType = OleDbType.Char;
tel.Direction = ParameterDirection.Input;
tel.Value = textBox4.Text;
myTransaction = myConn.BeginTransaction();
mycommand.CommandText = "INSERT INTO [member]([M_name],[M_surname],[M_user],[M_pass],[M_email],[M_tel])VALUES(@N,@S,@U,@P,@E,@T)";
mycommand.CommandType = CommandType.Text;
mycommand.Transaction = myTransaction;
mycommand.Connection = myConn;
mycommand.Parameters.Add(name);
mycommand.Parameters.Add(Sur);
mycommand.Parameters.Add(user);
mycommand.Parameters.Add(Pass);
mycommand.Parameters.Add(email);
mycommand.Parameters.Add(tel);
mycommand.ExecuteNonQuery();
myTransaction.Commit();
result =true; // เพิ่ม 2
}
else
{
MessageBox.Show("รหัสผ่านไม่ตรงกัน");
}
}catch (exception ex){
//ทำอะไรสักอย่างหากเกิดข้อผิดผลาด
MessageBox.show(ex.message+ex.toString());
}finaly{
myCon.close();
}
if (result == true) { // เพิ่ม 3
Response.Redirect("~/login.aspx");
}
}
ประวัติการแก้ไข 2012-10-23 15:36:38
Date :
2012-10-23 15:31:34
By :
phaizz
อีกนิดนะ อยากรู้ว่าแอดข้อมูลทีเดียวให้ลง 2 ตารางแต่ให้มันดูข้อมูลจากตารางที่1ถึงจะลงตารางที่2ได้อะครับมันทำได้มั้ยครับ
หรือจะแอดตารางที่2เฉยๆแต่ให้เปลียบเทียบกับตารางที่1อะครับโปรแกรมมันสามารถทำได้รึปล่าวครับ
Date :
2012-10-23 16:20:54
By :
white31969
if (result == true)
{
Response .Redirect("~/Login.aspx"); Errorตรงนี้อะครับ
}
ประวัติการแก้ไข 2012-10-23 16:31:09
Date :
2012-10-23 16:30:26
By :
white31969
Response .Redirect("~/Login.aspx ");
เปลี่ยนเป็นชื่อไฟล์หน้า login ของคุณครับ
Date :
2012-10-23 17:58:06
By :
phaizz
คือชื่อformของผมเป็นชื่อ Login อะครับ
Response .Redirect("~/Login.aspx");
มันErrorที่เดิมอะครับ ต้องLogin.csด้วยรึปล่าวแต่ันก็ไม่ไ้อยู่ดีอ่าครับ ทำไงดีพรุ้งนี้แล้วY_Y
Date :
2012-10-23 19:02:31
By :
white31969
55 เป็นความผิดผมเอง ..นึกว่า Web Form เขียนเป็น Windows Form ใช่มั้ยครับ
ลองอันนี้
Code (C#)
if (result == true)
{
Login login = new Login(); //create object of login
login.Show(); //display login using display() method
this.Hide(); //hide current form
}
หวังว่าคงจะช่วยได้จะครับ
ประวัติการแก้ไข 2012-10-23 20:38:46
Date :
2012-10-23 20:32:58
By :
phaizz
ขอคุณมากๆเลยครับแต่ว่ามันไม่ได้อะ คือย้อนมาหน้าloginมันก็ยังเข้าไม่ได้อะครับต้องปิดโปรแกรมก่อน เพื่อนผมมันบอกถ้าใช้sql serverจะไม่เกิดปัญหานี้อะ - - ผมเลยตัดปัญหาให้เข้าโปรแกรมใหม่อีกทีไปละ แก้ไม่ทันพรีเซนต์วันนี้แล้วววว ขอบคุณที่ช่วยนะครับ
Date :
2012-10-24 09:43:53
By :
white31969
Load balance : Server 03