SqlConnection conn = new SqlConnection(strConnection)); SqlCommand myCommand = new SqlCommand("select * from "+strTblName),(SqlConnection) conn); SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand ); SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
-=========================
SqlDataAdapter catDA = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn); catDA.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +
"WHERE CategoryID = @CategoryID" , nwindConn);catDA.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);
workParm.SourceColumn = "CategoryID";
workParm.SourceVersion = DataRowVersion.Original;DataSet catDS = new DataSet();
catDA.Fill(catDS, "Categories"); DataRow cRow = catDS.Tables["Categories"].Rows[0];
cRow["CategoryName"] = "New Category";catDA.Update(catDS);
两个方法任意选择一个即可: public DataSetUpdateByDataSet(DataSet ds,string strTblName,string strConnection)
{
SqlConnection conn = new SqlConnection(strConnection));
SqlDataAdapter myAdapter = new SqlDataAdapter();
SqlCommand myCommand = new SqlCommand("select * from "+strTblName),(SqlConnection) conn);
myAdapter.SelectCommand = myCommand;
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
try { lock(this) //处理并发情况(分布式情况) { myAdapter.Update(ds,strTblName); } }
catch(Exception err)
{ conn.Close();
throw new BusinessException(err);
} return ds; //数据集的行状态在更新后会都变为: UnChange,在这次更新后客户端要用返回的ds}或public DataSet UpdateByDataSet(DataSet ds,string strTblName,string strConnection)
{
SqlConnection conn = new SqlConnection(strConnection));
SqlCommand myCommand = new SqlCommand("select * from "+strTblName),(SqlConnection) conn); SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand ); SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
myAdapter.InsertCommand = myCommandBuilder .GetInsertCommand(); myAdapter.UpdateCommand = myCommandBuilder .GetUpdateCommand(); myAdapter.DeleteCommand = myCommandBuilder .GetDeleteCommand(); try { lock(this) //处理并发情况(分布式情况) { conn.Open(); myAdapter.Update(ds,strTblName); conn.Close(); }
return ds; //数据集的行状态在更新后会都变为: UnChange,在这次更新后客户端要用返回的ds }
catch(Exception err)
{ conn.Close();
throw new BusinessException(err);
}
}
具体请看原Blog:
http://blog.csdn.net/chengking/archive/2005/08/26/465874.aspx