更新数据库
方法一:在對SQL數據庫進行更新時,用CommandBuilder對像來自動構建sql命令,來起到更新的作用;這種方法用起來比較方便,具體代碼如下:
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Data;
using?System.Data.SqlClient;
namespace?sqltest
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????string?sConnectonString;
????????????sConnectonString?=?"Password=sa;user?id?=?sa;Initial?Catalog?=?master;Data?Source=(local)";
????????????SqlConnection?objConn?=?new?SqlConnection(sConnectonString);
????????????objConn.Open();
???????????????????????
????????????SqlDataAdapter?daAuthors?=?new?SqlDataAdapter("select?*?from?city_users",?objConn);
????????????DataSet?dsMaster?=?new?DataSet("master");
????????????daAuthors.FillSchema(dsMaster,?SchemaType.Source,?"city_users");//加載表的構架,這樣在操作加載到dataset里的表時就不用重新設置主鍵了
????????????daAuthors.Fill(dsMaster,?"city_users");
????????????dsMaster.Tables["city_users"].Rows[1]["user_name"]?=?"sql";//注意這里的Rows[1],這個1指得是在DataSet里的表里的行號,其與數據庫里的行號不一致如圖1
????????????
????????????SqlCommandBuilder?objCommandBuilder?=?new?SqlCommandBuilder(daAuthors);//構建sql命令
????????????daAuthors.Update(dsMaster,?"city_users");//更新
????????????//daAuthors.UpdateCommand?=?updatecomm;
????????????//daAuthors.UpdateCommand.ExecuteNonQuery();
????????????objConn.Close();
????????????Console.WriteLine("update?was?successful");
?????????
????????}
????}
}
using?System.Collections.Generic;
using?System.Text;
using?System.Data;
using?System.Data.SqlClient;
namespace?sqltest
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????string?sConnectonString;
????????????sConnectonString?=?"Password=sa;user?id?=?sa;Initial?Catalog?=?master;Data?Source=(local)";
????????????SqlConnection?objConn?=?new?SqlConnection(sConnectonString);
????????????objConn.Open();
????????????SqlCommand?updatecomm?=?new?SqlCommand("update?city_users?set?user_name='mysql'?where?user_id?=?7",?objConn);?
????????????daAuthors.UpdateCommand?=?updatecomm;
????????????daAuthors.UpdateCommand.ExecuteNonQuery();
????????????objConn.Close();
????????????Console.WriteLine("update?was?successful");?
????????}
????}
}
為什么我要寫這一篇呢?原因是我在用MySql時,用的MySql驅動沒有CommandBuilder對像,不能自動構建sql命令,所以就有了這篇文章。
以下代碼都在xp系統下測試通過
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Data;
using?System.Data.SqlClient;
namespace?sqltest
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????string?sConnectonString;
????????????sConnectonString?=?"Password=sa;user?id?=?sa;Initial?Catalog?=?master;Data?Source=(local)";
????????????SqlConnection?objConn?=?new?SqlConnection(sConnectonString);
????????????objConn.Open();
???????????????????????
????????????SqlDataAdapter?daAuthors?=?new?SqlDataAdapter("select?*?from?city_users",?objConn);
????????????DataSet?dsMaster?=?new?DataSet("master");
????????????daAuthors.FillSchema(dsMaster,?SchemaType.Source,?"city_users");//加載表的構架,這樣在操作加載到dataset里的表時就不用重新設置主鍵了
????????????daAuthors.Fill(dsMaster,?"city_users");
????????????dsMaster.Tables["city_users"].Rows[1]["user_name"]?=?"sql";//注意這里的Rows[1],這個1指得是在DataSet里的表里的行號,其與數據庫里的行號不一致如圖1
????????????
????????????SqlCommandBuilder?objCommandBuilder?=?new?SqlCommandBuilder(daAuthors);//構建sql命令
????????????daAuthors.Update(dsMaster,?"city_users");//更新
????????????//daAuthors.UpdateCommand?=?updatecomm;
????????????//daAuthors.UpdateCommand.ExecuteNonQuery();
????????????objConn.Close();
????????????Console.WriteLine("update?was?successful");
?????????
????????}
????}
}
圖1
方法二:手動添加sql語句,代碼如下:
using?System.Collections.Generic;
using?System.Text;
using?System.Data;
using?System.Data.SqlClient;
namespace?sqltest
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????string?sConnectonString;
????????????sConnectonString?=?"Password=sa;user?id?=?sa;Initial?Catalog?=?master;Data?Source=(local)";
????????????SqlConnection?objConn?=?new?SqlConnection(sConnectonString);
????????????objConn.Open();
????????????SqlCommand?updatecomm?=?new?SqlCommand("update?city_users?set?user_name='mysql'?where?user_id?=?7",?objConn);?
????????????daAuthors.UpdateCommand?=?updatecomm;
????????????daAuthors.UpdateCommand.ExecuteNonQuery();
????????????objConn.Close();
????????????Console.WriteLine("update?was?successful");?
????????}
????}
}
為什么我要寫這一篇呢?原因是我在用MySql時,用的MySql驅動沒有CommandBuilder對像,不能自動構建sql命令,所以就有了這篇文章。
轉載于:https://www.cnblogs.com/sopper/archive/2007/01/05/612200.html
總結
- 上一篇: 【原创】系统分析师--任重而道远
- 下一篇: 新增数据库栏位脚本