2023年6月21日发(作者:)

C#通过DataGridView对数据库进⾏增删改查运⾏效果.png⼀、准备数据库Student,数据表TableStudentCREATE TABLE [dbo].[TableStudent] ( [stuId] INT IDENTITY (1, 1) NOT NULL, [stuName] NVARCHAR (32) NULL, [stuSex] NCHAR (2) NULL, [stuBirthdate] NVARCHAR (32) NULL, [stuPhone] NVARCHAR (32) NULL, PRIMARY KEY CLUSTERED ([stuId] ASC));⼆、获取数据库连接字符串using System;using c;using ;using ;using ;using uration;using ent;using ;namespace DataAdapterExample{ class sqlHelper { //获取数据库连接字符串 public static string GetConnectionString() { return tionStrings["strConnect"].ConnectionString; } #region 封装⼀个执⾏SQL返回受影响的⾏数 public static int ExecuteNoQuery(string sqlText,params SqlParameter[] parameters) { using (SqlConnection con = new SqlConnection(GetConnectionString())) { using (SqlCommand cmd = Command()) { { (); dText = sqlText; ge(y()); return eNonQuery(); } } } #endregion #region 封装⼀个执⾏SQL返回查询结果中第⼀⾏第⼀列的值 public static object ExecuteScalar(string sqlText,params SqlParameter[] parameters) { using (SqlConnection con = new SqlConnection(GetConnectionString())) { using (SqlCommand cmd = Command()) { (); dText = sqlText; ge(y()); return eScalar(); } } } #endregion #region 封装⼀个执⾏SQL返回⼀个DataTable public static DataTable ExecuteDataTable(string sqlText,params SqlParameter[] parameters) { using (SqlDataAdapter adapter = new SqlDataAdapter(sqlText,GetConnectionString())) {

DataTable dt = new DataTable(); ge(y()); (dt); return dt; } } #endregion #region 封装⼀个执⾏SQL返回⼀个SqlDataReader public static SqlDataReader ExecutedReader(string sqlText,params SqlParameter[] parameters) { //SqlDataReader要求独占SqlConnection对象,并且SqlConnection必须是Open状态 SqlConnection con = new SqlConnection(GetConnectionString()); (); SqlCommand cmd = Command(); dText = sqlText; ge(y()); //SqlDataReader执⾏完成后顺便关闭数据库连接 return eReader(onnection); } #endregion }}三、数据表映射StudentInfo帮助类using System;using c;using ;using ;using ;namespace DataAdapterExample{ public class StudentInfo { public int stuId { get; set; } public string stuName { get; set; } public string stuSex { get; set; } public string stuBirthdate { get; set; } public string stuPhone { get; set; } }}四、主窗体对数据表进⾏CURDusing System;using c;using entModel;using ;using g;using ;using ;using ;using ;using uration;using ent;namespace DataAdapterExample{ public partial class MainFrm : Form { //标识正在修改的数据⾏的主键 private int updateStudentId = 0; public MainFrm() { InitializeComponent(); } //主窗体加载数据 private void MainFrm_Load(object sender, EventArgs e) { LoadStudentInfo(); } //增加数据 private void ButtonAdd_Click(object sender, EventArgs e) { using (SqlConnection con = new SqlConnection(nectionString())) { (); using (SqlCommand cmd = Command()) { dText = "insert into TableStudent (stuName,stuPhone,stuBirthdate,stuSex) values (@stuName,@stuPhone,@stuBirthdate,@stuSex)"; hValue("@stuName", ()); hValue("@stuPhone", ()); hValue("@stuSex", ()); hValue("@stuBirthdate", ()); if (eNonQuery() > 0) { ("增加数据成功!"); } } } LoadStudentInfo(); } //删除数据 private void ButtonDelete_Click(object sender, EventArgs e) { if ( <= 0) { ("请选择要删除的数据"); } if (("确认要删除吗?", "提醒消息", , g) != ) { return; } int deleteStuId = (edRows[0].Cells["stuId"].ng()); #region 原⽣⼿写 //using (SqlConnection con = new SqlConnection(nectionString())) //{ // (); // string sql = "delete from TableStudent where stuId=@stuId"; // using (SqlCommand cmd = Command()) // { // dText = sql; // hValue("stuId", deleteStuId); // //("@stuId", ); // //ters["stuId"].Value = deleteStuId; // //SqlParameter parameter = new SqlParameter(); // //terName = "@stuId"; // // = deleteStuId; // //(parameter); // if (eNonQuery() > 0) // { // ("删除成功"); // } // } //}

#endregion #region sqlHelper封装⽅法ExecuteNoQuery string strSQL = "delete from TableStudent where stuId=@stuId"; int num = eNoQuery(strSQL, new SqlParameter("@stuId", (object)deleteStuId)); if (num>0) { ("删除成功"); } #endregion LoadStudentInfo(); } //修改数据 private void buttonUpdate_Click(object sender, EventArgs e) { using (SqlConnection con = new SqlConnection(nectionString())) { using (SqlCommand cmd = Command()) { (); dText = "update TableStudent set stuName=@stuName,stuSex=@stuSex,stuBirthdate=@stuBirthdate,stuPhone=@stuPhone where stuId=@stuId"; hValue("@stuName", ); hValue("@stuBirthdate", ); hValue("@stuSex", ); hValue("@stuPhone", ); hValue("@stuId", StudentId); if (eNonQuery() > 0) { ("更新数据成功"); } } } //刷新数据 //刷新数据 ButtonSearch_Click(this,null); } //选中数据赋值到对应⽂本框 private void dataGridViewFromAdapter_SelectionChanged(object sender, EventArgs e) { if ( <= 0) { //("请先选中数据"); return; } //选中⾏的Id int selectedId = (edRows[0].Cells["stuId"].ng()); //把要修改的数据⾏的ID放到当前窗体的updateStudentId字段中保存 updateStudentId = selectedId; using (SqlConnection con = new SqlConnection(nectionString())) { (); using (SqlCommand cmd = Command()) { dText = "select stuId,stuName,stuSex,stuBirthdate,stuPhone from TableStudent where stuId=@stuId"; hValue("@stuId", selectedId); using (SqlDataReader reader = eReader()) { if (()) { = reader["stuSex"].ToString().Trim(); = reader["stuName"].ToString().Trim(); = reader["stuBirthdate"].ToString().Trim(); = reader["stuPhone"].ToString().Trim(); } } } } } //双击弹出修改窗体 private void dataGridViewFromAdapter_DoubleClick(object sender, EventArgs e) { if ( <= 0) { return; } int editStuId = (edRows[0].Cells["stuId"].ng()); EditStudentForm editStuFrm = new EditStudentForm(new StudentInfo() { stuId = editStuId }); //注册弹出窗体的关闭事件 osing += EditStuFrm_FormClosing; (); } //弹出窗体修改完成关闭的时候执⾏的操作 private void EditStuFrm_FormClosing(object sender, FormClosingEventArgs e) { LoadStudentInfo(); } //多条件查询 private void ButtonSearch_Click(object sender, EventArgs e) { //拼接whereSqlText脚本 string whereSqlText = "select stuId,stuName,stuPhone,stuBirthdate,stuSex from TableStudent"; List whereList = new List(); List parameters = new List(); if (!OrEmpty(())) { //把where条件添加到whereList集合中 ("stuName like @stuName"); SqlParameter parameter = new SqlParameter(); terName = "@stuName"; = "%" + () + "%"; = "%" + () + "%"; (parameter); } if (!OrEmpty(())) { //把where条件添加到whereList集合中 ("stuSex like @stuSex"); SqlParameter parameter = new SqlParameter(); terName = "@stuSex"; = "%" + () + "%"; (parameter); } if ( > 0) { whereSqlText += " where " + (" and ", whereList); //(whereSqlText);

} //加载数据⽅法的调⽤ LoadStudentInfo2DataGridView(whereSqlText, y());

} //加载数据 private void LoadStudentInfo() { List studentInfoList = new List(); string sqlText = "select stuId,stuName,stuSex,stuBirthdate,stuPhone from TableStudent"; LoadStudentInfo2DataGridView(sqlText); } //加载数据⽅法的封装 public void LoadStudentInfo2DataGridView(string sqlText,params SqlParameter[] parameters) { List studentInfoList = new List(); #region 原⽣写法 //using (SqlConnection con = new SqlConnection(nectionString())) //{ // using (SqlDataAdapter adapter = new SqlDataAdapter(sqlText, con)) // { // //填充之前,给SelectCommand赋参数 // ge(y()); // DataTable dt = new DataTable(); // (dt); // foreach (DataRow row in ) // { // StudentInfo studentInfo = new StudentInfo(); // = (row["stuId"].ToString().Trim()); // e = row["stuName"].ToString().Trim(); // = row["stuSex"].ToString().Trim(); // thdate = row["stuBirthdate"].ToString().Trim(); // ne = row["stuPhone"].ToString().Trim(); // (studentInfo); // } // urce = studentInfoList; // } //} #endregion #region sqlHelper类的ExecuteDataTable⽅法 DataTable dt = eDataTable(sqlText, parameters); foreach (DataRow row in ) { StudentInfo studentInfo = new StudentInfo(); = (row["stuId"].ToString().Trim()); e = row["stuName"].ToString().Trim(); = row["stuSex"].ToString().Trim(); thdate = row["stuBirthdate"].ToString().Trim(); ne = row["stuPhone"].ToString().Trim(); (studentInfo); } urce = studentInfoList; #endregion } }}五、双击DataGridView选中⾏弹出⼦窗体EditStudentForm对数据可以进⾏修改using System;using c;using entModel;using ;using g;using ;using ;using ;using ;using ent;namespace DataAdapterExample{ public partial class EditStudentForm : Form { //窗体属性 public StudentInfo StuInfo { get; set; } //构造函数接收StudentInfo对象 public EditStudentForm(StudentInfo stuInfo) { InitializeComponent(); //将传递的对象赋值给当前对象的属性 StuInfo = stuInfo; } //弹出窗体的时候加载传递⾏stuId对应的数据到对应⽂本框 private void EditStudentForm_Load(object sender, EventArgs e) { #region 原⽣写法 //using (SqlConnection con = new SqlConnection(nectionString())) //{ // using (SqlCommand cmd = Command()) // { // (); // dText = "select stuSex,stuName,stuBirthdate,stuPhone from TableStudent where stuId=@stuId"; // hValue("@stuId", ); // using (SqlDataReader reader = eReader()) // { // if (()) // { // = reader["stuBirthdate"].ToString().Trim(); // = reader["stuName"].ToString().Trim(); // = reader["stuPhone"].ToString().Trim(); // = reader["stuSex"].ToString().Trim(); // } // } // } //}

#endregion #region sqlHelper类的ExecuteReader⽅法 string strSQL = "select stuSex,stuName,stuBirthdate,stuPhone from TableStudent where stuId=@stuId"; using (SqlDataReader reader = edReader(strSQL, new SqlParameter("@stuId", (object)))) { if (()) { = reader["stuBirthdate"].ToString().Trim(); = reader["stuName"].ToString().Trim(); = reader["stuPhone"].ToString().Trim(); = reader["stuSex"].ToString().Trim(); } }

#endregion } //保存更新 private void ButtonSave_Click(object sender, EventArgs e) { #region 原⽣写法 //using (SqlConnection con = new SqlConnection(nectionString())) //{ // using (SqlCommand cmd = Command()) // { // (); // dText = "update TableStudent set stuPhone=@stuPhone,stuName=@stuName,stuBirthdate=@stuBirthdate,stuSex=@stuSex where stuId=@stuId"; // hValue("@stuId", ); // hValue("@stuName", ()); // hValue("@stuBirthdate", ()); // hValue("@stuPhone", ()); // hValue("@stuSex", ()); // if (eNonQuery() > 0) // { // ("更新成功"); // } // //关闭窗体 // (); // } //}

#endregion

#region 使⽤sqlHelper类的ExecuteNoQuery静态⽅法 string strSQL = "update TableStudent set stuPhone=@stuPhone,stuName=@stuName,stuBirthdate=@stuBirthdate,stuSex=@stuSex where stuId=@stuId"; List parameterList = new List(); SqlParameter paraStuName = new SqlParameter("@stuName", ar, 32); = (); (paraStuName); SqlParameter paraStuSex = new SqlParameter("@stuSex", ar, 32); = (); (paraStuSex); SqlParameter paraStuBirthdate = new SqlParameter("@stuBirthdate", ar, 32); = (); (paraStuBirthdate); SqlParameter paraStuPhone = new SqlParameter("@stuPhone", ar, 32); = (); (paraStuPhone); SqlParameter paraStuId = new SqlParameter("@stuId", ar, 32); = ; (paraStuId); int num = eNoQuery(strSQL, y()); if (num > 0) { ("保存更新成功!"); } //关闭窗⼝ ();

#endregion } }}主窗体最下⾯的⽂本框功能:(1)增加新的数据⾏(2)显⽰选中⾏数据(3)修改选中⾏数据优化:sqlHelper类中封装⽅法(1)执⾏SQL返回受影响的⾏数的ExecuteNoQuery⽅法(2)执⾏SQL返回查询结果中第⼀⾏第⼀列的值的ExecuteScalar⽅法(3)执⾏SQL返回⼀个DataTable的ExecuteDataTable⽅法(4)执⾏SQL返回⼀个SqlDataReader的ExecutedReader⽅法

2023年6月21日发(作者:)

C#通过DataGridView对数据库进⾏增删改查运⾏效果.png⼀、准备数据库Student,数据表TableStudentCREATE TABLE [dbo].[TableStudent] ( [stuId] INT IDENTITY (1, 1) NOT NULL, [stuName] NVARCHAR (32) NULL, [stuSex] NCHAR (2) NULL, [stuBirthdate] NVARCHAR (32) NULL, [stuPhone] NVARCHAR (32) NULL, PRIMARY KEY CLUSTERED ([stuId] ASC));⼆、获取数据库连接字符串using System;using c;using ;using ;using ;using uration;using ent;using ;namespace DataAdapterExample{ class sqlHelper { //获取数据库连接字符串 public static string GetConnectionString() { return tionStrings["strConnect"].ConnectionString; } #region 封装⼀个执⾏SQL返回受影响的⾏数 public static int ExecuteNoQuery(string sqlText,params SqlParameter[] parameters) { using (SqlConnection con = new SqlConnection(GetConnectionString())) { using (SqlCommand cmd = Command()) { { (); dText = sqlText; ge(y()); return eNonQuery(); } } } #endregion #region 封装⼀个执⾏SQL返回查询结果中第⼀⾏第⼀列的值 public static object ExecuteScalar(string sqlText,params SqlParameter[] parameters) { using (SqlConnection con = new SqlConnection(GetConnectionString())) { using (SqlCommand cmd = Command()) { (); dText = sqlText; ge(y()); return eScalar(); } } } #endregion #region 封装⼀个执⾏SQL返回⼀个DataTable public static DataTable ExecuteDataTable(string sqlText,params SqlParameter[] parameters) { using (SqlDataAdapter adapter = new SqlDataAdapter(sqlText,GetConnectionString())) {

DataTable dt = new DataTable(); ge(y()); (dt); return dt; } } #endregion #region 封装⼀个执⾏SQL返回⼀个SqlDataReader public static SqlDataReader ExecutedReader(string sqlText,params SqlParameter[] parameters) { //SqlDataReader要求独占SqlConnection对象,并且SqlConnection必须是Open状态 SqlConnection con = new SqlConnection(GetConnectionString()); (); SqlCommand cmd = Command(); dText = sqlText; ge(y()); //SqlDataReader执⾏完成后顺便关闭数据库连接 return eReader(onnection); } #endregion }}三、数据表映射StudentInfo帮助类using System;using c;using ;using ;using ;namespace DataAdapterExample{ public class StudentInfo { public int stuId { get; set; } public string stuName { get; set; } public string stuSex { get; set; } public string stuBirthdate { get; set; } public string stuPhone { get; set; } }}四、主窗体对数据表进⾏CURDusing System;using c;using entModel;using ;using g;using ;using ;using ;using ;using uration;using ent;namespace DataAdapterExample{ public partial class MainFrm : Form { //标识正在修改的数据⾏的主键 private int updateStudentId = 0; public MainFrm() { InitializeComponent(); } //主窗体加载数据 private void MainFrm_Load(object sender, EventArgs e) { LoadStudentInfo(); } //增加数据 private void ButtonAdd_Click(object sender, EventArgs e) { using (SqlConnection con = new SqlConnection(nectionString())) { (); using (SqlCommand cmd = Command()) { dText = "insert into TableStudent (stuName,stuPhone,stuBirthdate,stuSex) values (@stuName,@stuPhone,@stuBirthdate,@stuSex)"; hValue("@stuName", ()); hValue("@stuPhone", ()); hValue("@stuSex", ()); hValue("@stuBirthdate", ()); if (eNonQuery() > 0) { ("增加数据成功!"); } } } LoadStudentInfo(); } //删除数据 private void ButtonDelete_Click(object sender, EventArgs e) { if ( <= 0) { ("请选择要删除的数据"); } if (("确认要删除吗?", "提醒消息", , g) != ) { return; } int deleteStuId = (edRows[0].Cells["stuId"].ng()); #region 原⽣⼿写 //using (SqlConnection con = new SqlConnection(nectionString())) //{ // (); // string sql = "delete from TableStudent where stuId=@stuId"; // using (SqlCommand cmd = Command()) // { // dText = sql; // hValue("stuId", deleteStuId); // //("@stuId", ); // //ters["stuId"].Value = deleteStuId; // //SqlParameter parameter = new SqlParameter(); // //terName = "@stuId"; // // = deleteStuId; // //(parameter); // if (eNonQuery() > 0) // { // ("删除成功"); // } // } //}

#endregion #region sqlHelper封装⽅法ExecuteNoQuery string strSQL = "delete from TableStudent where stuId=@stuId"; int num = eNoQuery(strSQL, new SqlParameter("@stuId", (object)deleteStuId)); if (num>0) { ("删除成功"); } #endregion LoadStudentInfo(); } //修改数据 private void buttonUpdate_Click(object sender, EventArgs e) { using (SqlConnection con = new SqlConnection(nectionString())) { using (SqlCommand cmd = Command()) { (); dText = "update TableStudent set stuName=@stuName,stuSex=@stuSex,stuBirthdate=@stuBirthdate,stuPhone=@stuPhone where stuId=@stuId"; hValue("@stuName", ); hValue("@stuBirthdate", ); hValue("@stuSex", ); hValue("@stuPhone", ); hValue("@stuId", StudentId); if (eNonQuery() > 0) { ("更新数据成功"); } } } //刷新数据 //刷新数据 ButtonSearch_Click(this,null); } //选中数据赋值到对应⽂本框 private void dataGridViewFromAdapter_SelectionChanged(object sender, EventArgs e) { if ( <= 0) { //("请先选中数据"); return; } //选中⾏的Id int selectedId = (edRows[0].Cells["stuId"].ng()); //把要修改的数据⾏的ID放到当前窗体的updateStudentId字段中保存 updateStudentId = selectedId; using (SqlConnection con = new SqlConnection(nectionString())) { (); using (SqlCommand cmd = Command()) { dText = "select stuId,stuName,stuSex,stuBirthdate,stuPhone from TableStudent where stuId=@stuId"; hValue("@stuId", selectedId); using (SqlDataReader reader = eReader()) { if (()) { = reader["stuSex"].ToString().Trim(); = reader["stuName"].ToString().Trim(); = reader["stuBirthdate"].ToString().Trim(); = reader["stuPhone"].ToString().Trim(); } } } } } //双击弹出修改窗体 private void dataGridViewFromAdapter_DoubleClick(object sender, EventArgs e) { if ( <= 0) { return; } int editStuId = (edRows[0].Cells["stuId"].ng()); EditStudentForm editStuFrm = new EditStudentForm(new StudentInfo() { stuId = editStuId }); //注册弹出窗体的关闭事件 osing += EditStuFrm_FormClosing; (); } //弹出窗体修改完成关闭的时候执⾏的操作 private void EditStuFrm_FormClosing(object sender, FormClosingEventArgs e) { LoadStudentInfo(); } //多条件查询 private void ButtonSearch_Click(object sender, EventArgs e) { //拼接whereSqlText脚本 string whereSqlText = "select stuId,stuName,stuPhone,stuBirthdate,stuSex from TableStudent"; List whereList = new List(); List parameters = new List(); if (!OrEmpty(())) { //把where条件添加到whereList集合中 ("stuName like @stuName"); SqlParameter parameter = new SqlParameter(); terName = "@stuName"; = "%" + () + "%"; = "%" + () + "%"; (parameter); } if (!OrEmpty(())) { //把where条件添加到whereList集合中 ("stuSex like @stuSex"); SqlParameter parameter = new SqlParameter(); terName = "@stuSex"; = "%" + () + "%"; (parameter); } if ( > 0) { whereSqlText += " where " + (" and ", whereList); //(whereSqlText);

} //加载数据⽅法的调⽤ LoadStudentInfo2DataGridView(whereSqlText, y());

} //加载数据 private void LoadStudentInfo() { List studentInfoList = new List(); string sqlText = "select stuId,stuName,stuSex,stuBirthdate,stuPhone from TableStudent"; LoadStudentInfo2DataGridView(sqlText); } //加载数据⽅法的封装 public void LoadStudentInfo2DataGridView(string sqlText,params SqlParameter[] parameters) { List studentInfoList = new List(); #region 原⽣写法 //using (SqlConnection con = new SqlConnection(nectionString())) //{ // using (SqlDataAdapter adapter = new SqlDataAdapter(sqlText, con)) // { // //填充之前,给SelectCommand赋参数 // ge(y()); // DataTable dt = new DataTable(); // (dt); // foreach (DataRow row in ) // { // StudentInfo studentInfo = new StudentInfo(); // = (row["stuId"].ToString().Trim()); // e = row["stuName"].ToString().Trim(); // = row["stuSex"].ToString().Trim(); // thdate = row["stuBirthdate"].ToString().Trim(); // ne = row["stuPhone"].ToString().Trim(); // (studentInfo); // } // urce = studentInfoList; // } //} #endregion #region sqlHelper类的ExecuteDataTable⽅法 DataTable dt = eDataTable(sqlText, parameters); foreach (DataRow row in ) { StudentInfo studentInfo = new StudentInfo(); = (row["stuId"].ToString().Trim()); e = row["stuName"].ToString().Trim(); = row["stuSex"].ToString().Trim(); thdate = row["stuBirthdate"].ToString().Trim(); ne = row["stuPhone"].ToString().Trim(); (studentInfo); } urce = studentInfoList; #endregion } }}五、双击DataGridView选中⾏弹出⼦窗体EditStudentForm对数据可以进⾏修改using System;using c;using entModel;using ;using g;using ;using ;using ;using ;using ent;namespace DataAdapterExample{ public partial class EditStudentForm : Form { //窗体属性 public StudentInfo StuInfo { get; set; } //构造函数接收StudentInfo对象 public EditStudentForm(StudentInfo stuInfo) { InitializeComponent(); //将传递的对象赋值给当前对象的属性 StuInfo = stuInfo; } //弹出窗体的时候加载传递⾏stuId对应的数据到对应⽂本框 private void EditStudentForm_Load(object sender, EventArgs e) { #region 原⽣写法 //using (SqlConnection con = new SqlConnection(nectionString())) //{ // using (SqlCommand cmd = Command()) // { // (); // dText = "select stuSex,stuName,stuBirthdate,stuPhone from TableStudent where stuId=@stuId"; // hValue("@stuId", ); // using (SqlDataReader reader = eReader()) // { // if (()) // { // = reader["stuBirthdate"].ToString().Trim(); // = reader["stuName"].ToString().Trim(); // = reader["stuPhone"].ToString().Trim(); // = reader["stuSex"].ToString().Trim(); // } // } // } //}

#endregion #region sqlHelper类的ExecuteReader⽅法 string strSQL = "select stuSex,stuName,stuBirthdate,stuPhone from TableStudent where stuId=@stuId"; using (SqlDataReader reader = edReader(strSQL, new SqlParameter("@stuId", (object)))) { if (()) { = reader["stuBirthdate"].ToString().Trim(); = reader["stuName"].ToString().Trim(); = reader["stuPhone"].ToString().Trim(); = reader["stuSex"].ToString().Trim(); } }

#endregion } //保存更新 private void ButtonSave_Click(object sender, EventArgs e) { #region 原⽣写法 //using (SqlConnection con = new SqlConnection(nectionString())) //{ // using (SqlCommand cmd = Command()) // { // (); // dText = "update TableStudent set stuPhone=@stuPhone,stuName=@stuName,stuBirthdate=@stuBirthdate,stuSex=@stuSex where stuId=@stuId"; // hValue("@stuId", ); // hValue("@stuName", ()); // hValue("@stuBirthdate", ()); // hValue("@stuPhone", ()); // hValue("@stuSex", ()); // if (eNonQuery() > 0) // { // ("更新成功"); // } // //关闭窗体 // (); // } //}

#endregion

#region 使⽤sqlHelper类的ExecuteNoQuery静态⽅法 string strSQL = "update TableStudent set stuPhone=@stuPhone,stuName=@stuName,stuBirthdate=@stuBirthdate,stuSex=@stuSex where stuId=@stuId"; List parameterList = new List(); SqlParameter paraStuName = new SqlParameter("@stuName", ar, 32); = (); (paraStuName); SqlParameter paraStuSex = new SqlParameter("@stuSex", ar, 32); = (); (paraStuSex); SqlParameter paraStuBirthdate = new SqlParameter("@stuBirthdate", ar, 32); = (); (paraStuBirthdate); SqlParameter paraStuPhone = new SqlParameter("@stuPhone", ar, 32); = (); (paraStuPhone); SqlParameter paraStuId = new SqlParameter("@stuId", ar, 32); = ; (paraStuId); int num = eNoQuery(strSQL, y()); if (num > 0) { ("保存更新成功!"); } //关闭窗⼝ ();

#endregion } }}主窗体最下⾯的⽂本框功能:(1)增加新的数据⾏(2)显⽰选中⾏数据(3)修改选中⾏数据优化:sqlHelper类中封装⽅法(1)执⾏SQL返回受影响的⾏数的ExecuteNoQuery⽅法(2)执⾏SQL返回查询结果中第⼀⾏第⼀列的值的ExecuteScalar⽅法(3)执⾏SQL返回⼀个DataTable的ExecuteDataTable⽅法(4)执⾏SQL返回⼀个SqlDataReader的ExecutedReader⽅法