用ado.net进行分布式程序设计更新数据库(学习笔记)
2008-05-01 02:56
573 查看
提供一个数据服务类,调用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),不过程序员的控制能力要强一些了。
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),不过程序员的控制能力要强一些了。
相关文章推荐
- [2004-8-4]VB.Net学习笔记,使用ADO.Net对象访问数据库,将结果写入ListView
- C#-ado.net学习笔记-会有更新
- 黑马程序员之ADO.NET学习笔记:省市选择程序,数据全部来自于数据库。
- 执行数据库命令(Command对象)——ADO.NET学习&应用笔记之三
- ADO.NET的学习笔记(一)--数据库连接及常用的数据库访问方式
- C#学习笔记(六)-使用ADO .NET查询和操作数据库
- 执行数据库命令Command对象——ADO.NET学习&应用笔记之三
- 数据库开发及ADO.NET学习笔记(二)
- Java -- JDBC 学习--通过Statement进行数据库更新操作
- ADO.NET学习笔记
- ADO.NET数据库编程 利用应用程序配置文件进行数据的读取
- [ASP.NET学习笔记之三]ADO.NET开发最佳实践
- [ASP.NET学习笔记之六]开发高性能的ADO.NET应用
- Ado.Net学习笔记
- 在更新数据库时VS的ADO.NET 实体数据模型中正确显示新添加的实体
- C#(7):ADO.NET进行数据库编程
- ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据
- WPF学习笔记——编辑DataGrid单元格并实时更新到数据库
- java 数据库编程 学习笔记 不断更新
- ASP.NET MVC 1.0 学习笔记(随时更新)