用户通过C#Windows窗体应用程序访问并更新数据库可有三种方式,下面是三种方式的主要代码:
1.拼接字符串
private void button1_Click_1(object sender, EventArgs e) { //信息检查 if (this.CheckInfo()) { //取值 string userId = this.textBox1.Text.Trim(); string userName = this.textBox2.Text.Trim(); //新建连接对象 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=(local);Initial Catalog=student;Integrated Security=SSPI"; //拼接命令字符串 string updateQuery = "update student set sname='" + userName + "'"+"where sno='" + userId+"'"; //新建命令对象 SqlCommand cmd = new SqlCommand(updateQuery, conn); conn.Open(); //保存执行结果 int RecordsAffected = cmd.ExecuteNonQuery(); conn.Close(); //提示结果 Alert("更新数据数为" + RecordsAffected.ToString()); } }
2.使用参数
private void button2_Click(object sender, EventArgs e) { //取值 string userId = this.textBox1.Text.Trim(); string userName = this.textBox2.Text.Trim(); //新建连接对象 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=(local);Initial Catalog=Student;Integrated Security=SSPI"; //拼接命令字符串 string updateQuery = "update student set sname=@userName where sno=@userId"; //新建命令对象 SqlCommand cmd = new SqlCommand(updateQuery, conn); //添加参数 cmd.Parameters.Add(new SqlParameter("@userName", userName)); cmd.Parameters.Add(new SqlParameter("@userId", userId)); conn.Open(); //保存执行结果 int RecordsAffected = cmd.ExecuteNonQuery(); conn.Close(); Alert("更新数据数为" + RecordsAffected); }
3.使用存储过程
private void button3_Click(object sender, EventArgs e) { //信息检查 if (this.CheckInfo()) { //取值 string userId = this.textBox1.Text.Trim(); string userName = this.textBox2.Text.Trim(); //新建连接对象 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=(local);Initial Catalog=Student;Integrated Security=SSPI"; //新建命令对象 SqlCommand cmd = new SqlCommand("UpdateStudentInfo", conn); //指定命令类型为存储过程 cmd.CommandType = CommandType.StoredProcedure; //添加参数 cmd.Parameters.Add(new SqlParameter("@userName", userName)); cmd.Parameters.Add(new SqlParameter("@userId", userId)); conn.Open(); //保存执行结果 int RecordsAffected = cmd.ExecuteNonQuery(); conn.Close(); //提示结果 Alert("更新数据数为" + RecordsAffected); }
数据库中新建存储过程:
CREATE PROCEDURE UpdateStudentInfo ( @userName nvarchar(20), @userId nvarchar(20) ) AS Update student set sname=@userName where sno=@userId GO