PDA

View Full Version : سوال: مشکل در اپدیت داده ها در C# و بانک SQL



poorking
چهارشنبه 31 شهریور 1389, 14:49 عصر
سلام اساتید عزیز
من توی برنامه ای که دارم مینویسم میخوام روی یک دیتا گرید ویو که دابل کلیک کردم فرم جدید باز بشه و سپس اون اطلاعاتی که در تکس باکس ها لود شده را ویرایش کنم

من سرچ کردم و یکسری کد پیدا کردم وای وقتی دیباگ کردم دقیقا‍ به کد cmd.ExecuteNonQuery();

که میرسه ارور میده http://up.iranblog.com/Files/c318aa354f364016869f.jpg

لطفاً منو راهنمایی کنید

کد مربوطه :

public partial class EditUser : Form
{
private string Username;
private string Password;
string idchane;
DataSet Sql_ds;
SqlConnection Con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Shop.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
public EditUser(string Username,string Password)
{
InitializeComponent();
textBox1.Text = Username;
textBox2.Text = Password;
idchane = id;
}
private void button1_Click(object sender, EventArgs e)
{

if (Con.State == ConnectionState.Closed)
{
Con.Open();
}
SqlConnection con = new SqlConnection();
SqlDataAdapter Sql_da = new SqlDataAdapter("Select * From Security", Con);

string Query = "update Security set Username=@Username,Password=@Password where id=@idchange";

SqlCommand cmd = new SqlCommand(Query, con);

cmd.Parameters.Add("@Username", SqlDbType.Char).Value = textBox1.Text.Trim();
cmd.Parameters.Add("@Password", SqlDbType.Char).Value = textBox2.Text.Trim();
cmd.Parameters.Add("@idchange", SqlDbType.Char).Value = idchane;


cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اپديت شد");
this.Close();
}

jimi67
چهارشنبه 31 شهریور 1389, 16:10 عصر
public partial class EditUser : Form
{
private string Username;
private string Password;
string idchane;
DataSet Sql_ds;
SqlConnection Con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Shop.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
public EditUser(string Username,string Password)
{
InitializeComponent();
textBox1.Text = Username;
textBox2.Text = Password;
idchane = id;
}
private void button1_Click(object sender, EventArgs e)
{

if (Con.State == ConnectionState.Closed)
{
Con.Open();
}
SqlConnection con = new SqlConnection();
SqlDataAdapter Sql_da = new SqlDataAdapter("Select * From Security", Con);

string Query = "update Security set Username=@Username,Password=@Password where id=@idchange";

SqlCommand cmd = new SqlCommand(Query, con);

cmd.Parameters.Add("@Username", SqlDbType.Char).Value = textBox1.Text.Trim();
cmd.Parameters.Add("@Password", SqlDbType.Char).Value = textBox2.Text.Trim();
cmd.Parameters.Add("@idchange", SqlDbType.Char).Value = idchane;


cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اپديت شد");
this.Close();
}
چه نیازی هست که Connection اینجا تعریف بشه؟
بهتره توی رویداد مربوط به کلیک دکمه، به شکل زیر باشه:

public partial class EditUser : Form
{
private string Username;
private string Password;
string idchane;
DataSet Sql_ds;
public EditUser(string Username,string Password)
{
InitializeComponent();
textBox1.Text = Username;
textBox2.Text = Password;
idchane = id;
}
private void button1_Click(object sender, EventArgs e)
{

SqlConnection Con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Shop.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

Con.Open();

SqlConnection con = new SqlConnection();
SqlDataAdapter Sql_da = new SqlDataAdapter("Select * From Security", Con);

string Query = "update Security set Username=@Username,Password=@Password where id=@idchange";

SqlCommand cmd = new SqlCommand(Query, con);

cmd.Parameters.Add("@Username", SqlDbType.Char).Value = textBox1.Text.Trim();
cmd.Parameters.Add("@Password", SqlDbType.Char).Value = textBox2.Text.Trim();
cmd.Parameters.Add("@idchange", SqlDbType.Char).Value = idchane;


cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اپديت شد");
this.Close();
امتحان کنید احتمالا مشکل حل میشه.

poorking
چهارشنبه 31 شهریور 1389, 18:41 عصر
نه عزیز دوباره همون پیغامو میده :اشتباه:


قتی دیباگ کردم دقیقا‍ به کد cmd.ExecuteNonQuery();


که میرسه ارور میده http://up.iranblog.com/Files/c318aa354f364016869f.jpg

adel89
سه شنبه 06 مهر 1389, 06:45 صبح
احتمالا نوع داده هات تو کد نویسی ات با نوع داده های بانک هم خوانی نداره !!
موفق باشی