c#数据库用update方法内存中改了,但数据库却没变
using(SqlConnectionconn=newSqlConnection(connectionString)){stringsql="updateMyTable5...
using (SqlConnection conn = new SqlConnection(connectionString))
{
string sql = "update MyTable5 set 密码=@Password where 用户名=@UserName";
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
cmd.Parameters.Add("@UserName", SqlDbType.NChar).Value = xinxi.UserName;
cmd.Parameters.Add("@Password", SqlDbType.NChar).Value = textBox2.Text;
cmd.ExecuteNonQuery();
MessageBox.Show("修改成功!");
conn.Close();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
这是我写的一段代码,目的是将mytable5中的密码改为textbox2中的内容,执行之后查看数据库,发现没有变化,求解为什么以及解决方法 展开
{
string sql = "update MyTable5 set 密码=@Password where 用户名=@UserName";
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
cmd.Parameters.Add("@UserName", SqlDbType.NChar).Value = xinxi.UserName;
cmd.Parameters.Add("@Password", SqlDbType.NChar).Value = textBox2.Text;
cmd.ExecuteNonQuery();
MessageBox.Show("修改成功!");
conn.Close();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
这是我写的一段代码,目的是将mytable5中的密码改为textbox2中的内容,执行之后查看数据库,发现没有变化,求解为什么以及解决方法 展开
1个回答
展开全部
cmd.Parameters.Add("@UserName", SqlDbType.NChar).Value = xinxi.UserName;
cmd.Parameters.Add("@Password", SqlDbType.NChar).Value = textBox2.Text;
这两行中是不是未指定字符长度,默认可能是0。
请修改试试。
你还可以取得
cmd.ExecuteNonQuery();
的返回值,判断是不更新成功。
cmd.Parameters.Add("@Password", SqlDbType.NChar).Value = textBox2.Text;
这两行中是不是未指定字符长度,默认可能是0。
请修改试试。
你还可以取得
cmd.ExecuteNonQuery();
的返回值,判断是不更新成功。
更多追问追答
追问
我试用了你的方法
cmd.ExecuteNonQuery()的返回值为1,修改成功,但数据库还是没变
追答
再看了一下,可能你定义参数的代码要修改一下。
cmd.Parameters.Add(New SqlClient.SqlParameter("@UserName", SqlDbType.NChar, 20));
cmd.Parameters("@UserName").Value = xinxi.UserName;
cmd.Parameters.Add(New SqlClient.SqlParameter("@Password", SqlDbType.NChar, 20));
cmd.Parameters("@Password").Value = textBox2.Text;
其中,20是字段在数据库中定义的长度,如果不是20,请修改成字段实际定义长度。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询