用ado.net進行分布式程式設計更新資料庫
最後更新:2017-02-28
來源:互聯網
上載者:User
ado|程式|分布式|設計|資料|資料庫 提供一個資料服務類,調用GetDataSet就得到需要的DataSet,然後在使用者介面進行修改,最後調用SaveDate就可以把未定的更改儲存到資料庫。
using System;
using System.Data ;
using System.Data.SqlClient ;
namespace AsterDnet.DataBind
{
/// <summary>
/// Summary description for GetData.
/// </summary>
public class TestData
{
private SqlDataAdapter da;
public TestData()
{
//
// TODO: Add constructor logic here
//
}
public DataSet GetDataSet()
{
string strConn="data source=ASTERDNET;initial catalog=Test;integrated security=SSPI;persist security info=False;user id=sa;workstation id=ASTERDNET;packet size=4096";
SqlConnection conn=new SqlConnection(strConn);
conn.Open();
DataSet ds=new DataSet();
SqlParameter workParam=new SqlParameter();
da=new SqlDataAdapter();
//Build the select Command
da.SelectCommand =new SqlCommand("select * from Education ",conn);
da.Fill(ds,"Education");
// Build the insert Command
da.InsertCommand = new SqlCommand("Insert into Education (ID, Education) VALUES (@ID, @Education)", conn);
workParam = da.InsertCommand.Parameters.Add("@ID", SqlDbType.Int);
workParam.SourceColumn = "ID";
workParam.SourceVersion = DataRowVersion.Current;
workParam = da.InsertCommand.Parameters.Add("@Education", SqlDbType.NChar, 50);
workParam.SourceVersion = DataRowVersion.Current;
workParam.SourceColumn = "Education";
// Build the update command
da.UpdateCommand = new SqlCommand("Update Education Set Education = @Education WHERE ID = @ID" , conn);
workParam = da.UpdateCommand.Parameters.Add("@ID", SqlDbType.Int);
workParam.SourceColumn = "ID";
workParam.SourceVersion = DataRowVersion.Original;
workParam = da.UpdateCommand.Parameters.Add("@Education", SqlDbType.NChar, 50);
workParam.SourceVersion = DataRowVersion.Current;
workParam.SourceColumn = "Education";
//Build the delete command
da.DeleteCommand =new SqlCommand("delete from Education where id=@ID",conn);
workParam=da.DeleteCommand.Parameters.Add("@ID",SqlDbType.Int );
workParam.SourceColumn ="ID";
workParam.SourceVersion =DataRowVersion.Original;
return ds;
}
//save the change dataset
public void SaveDate(DataSet dataSet,string tableName)
{
da.Update(dataSet,tableName);
}
}
}
例中我建立了一個Test的資料庫,資料庫中建立一個Education的表,表中建立了兩個欄位ID(int),Education(char),在rc3中通過。
感覺沒有vb6.0用ado2.5中那麼方便(只要設定ActiveConnection,然後update就一切搞定,現在要自己寫如何更新的SqlCommand),不過程式員的控制能力要強一些了。