请教下 如下代码是对数据库表进行select和update操作 这种写法有什么好处吗?我一般都是这样操作:请问这两种写法区别在哪里?工作中用哪种比较好?
SqlConnection mySqlConnection = new SqlConnection("server = localhost; database=Student; uid = sa; pwd = ;");
SqlCommand cmd = new SqlCommand("select * from employee", mySqlConnection);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet dt = new DataSet();
da.Fill(dt, "asd");
this.dataGridView1.DataSource = dt.Tables[0].DefaultView;
。。update也是如此————————————————以上是我的习惯操作————————————————————————————————————————
//连接数据库,取得"employee"表
SqlConnection mySqlConnection = new SqlConnection("server = localhost; database=Student; uid = sa; pwd = ;");
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();//利用一个现有连接创建一个Command,用以执行sql指令
mySqlCommand.CommandText = "Select * from employee";
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
mySqlDataAdapter.SelectCommand = mySqlCommand;
DataSet myDataSet = new DataSet();
mySqlConnection.Open(); //打开数据库
mySqlDataAdapter.Fill(myDataSet);
DataTable myDataTable = myDataSet.Tables[0]; //设置mySqlDataAdapter的UpdateCommand属性,以便于后面的Update()
SqlCommand myUpdateCommand = mySqlConnection.CreateCommand();
myUpdateCommand.CommandText =
"UPDATE employee " +
"SET " +
"年龄 = @新年龄, " +
"毕业学校 = @新毕业学校 " +
"WHERE 编号 = @原编号 " +
"AND 姓名 = @原姓名 " +
"AND 性别 = @原性别 ";
myUpdateCommand.Parameters.Add("@新年龄", SqlDbType.VarChar, 50, "年龄");
myUpdateCommand.Parameters.Add("@新毕业学校", SqlDbType.VarChar, 50, "毕业学校");
myUpdateCommand.Parameters.Add("@原编号", SqlDbType.VarChar, 50, "编号");
myUpdateCommand.Parameters.Add("@原姓名", SqlDbType.VarChar, 50, "姓名");
myUpdateCommand.Parameters.Add("@原性别", SqlDbType.VarChar, 50, "性别");
//加入UpdateCommand属性
mySqlDataAdapter.UpdateCommand = myUpdateCommand; //设置myDataTable的主键以便于后面的find()按主键查找
myDataTable.PrimaryKey =
new DataColumn[]
{
myDataTable.Columns["编号"]
};
//按主键查找到编号为"002"的员工信息
DataRow myEditDataRow = myDataTable.Rows.Find("002");
//改变该员工年龄信息以及毕业学校信息
myEditDataRow.BeginEdit();
myEditDataRow["年龄"] = "25";
myEditDataRow["毕业学校"] = "东南大学";
myEditDataRow.EndEdit(); int numOfRows = mySqlDataAdapter.Update(myDataTable);
this.dataGridView1.DataSource = myDataTable;
mySqlConnection.Close(); //关闭数据库
SqlConnection mySqlConnection = new SqlConnection("server = localhost; database=Student; uid = sa; pwd = ;");
SqlCommand cmd = new SqlCommand("select * from employee", mySqlConnection);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet dt = new DataSet();
da.Fill(dt, "asd");
this.dataGridView1.DataSource = dt.Tables[0].DefaultView;
。。update也是如此————————————————以上是我的习惯操作————————————————————————————————————————
//连接数据库,取得"employee"表
SqlConnection mySqlConnection = new SqlConnection("server = localhost; database=Student; uid = sa; pwd = ;");
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();//利用一个现有连接创建一个Command,用以执行sql指令
mySqlCommand.CommandText = "Select * from employee";
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
mySqlDataAdapter.SelectCommand = mySqlCommand;
DataSet myDataSet = new DataSet();
mySqlConnection.Open(); //打开数据库
mySqlDataAdapter.Fill(myDataSet);
DataTable myDataTable = myDataSet.Tables[0]; //设置mySqlDataAdapter的UpdateCommand属性,以便于后面的Update()
SqlCommand myUpdateCommand = mySqlConnection.CreateCommand();
myUpdateCommand.CommandText =
"UPDATE employee " +
"SET " +
"年龄 = @新年龄, " +
"毕业学校 = @新毕业学校 " +
"WHERE 编号 = @原编号 " +
"AND 姓名 = @原姓名 " +
"AND 性别 = @原性别 ";
myUpdateCommand.Parameters.Add("@新年龄", SqlDbType.VarChar, 50, "年龄");
myUpdateCommand.Parameters.Add("@新毕业学校", SqlDbType.VarChar, 50, "毕业学校");
myUpdateCommand.Parameters.Add("@原编号", SqlDbType.VarChar, 50, "编号");
myUpdateCommand.Parameters.Add("@原姓名", SqlDbType.VarChar, 50, "姓名");
myUpdateCommand.Parameters.Add("@原性别", SqlDbType.VarChar, 50, "性别");
//加入UpdateCommand属性
mySqlDataAdapter.UpdateCommand = myUpdateCommand; //设置myDataTable的主键以便于后面的find()按主键查找
myDataTable.PrimaryKey =
new DataColumn[]
{
myDataTable.Columns["编号"]
};
//按主键查找到编号为"002"的员工信息
DataRow myEditDataRow = myDataTable.Rows.Find("002");
//改变该员工年龄信息以及毕业学校信息
myEditDataRow.BeginEdit();
myEditDataRow["年龄"] = "25";
myEditDataRow["毕业学校"] = "东南大学";
myEditDataRow.EndEdit(); int numOfRows = mySqlDataAdapter.Update(myDataTable);
this.dataGridView1.DataSource = myDataTable;
mySqlConnection.Close(); //关闭数据库
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货