提供一個數據服務類,調用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 // } publicDataSet 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=newSqlParameter(); 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),不過程序員的控制能力要強一些了。
|