示例 [Visual Basic, C#, C++] 下面的示例使用 SqlCommand 以及 SqlDataAdapter 和 SqlConnection 从数据源选择行。给该示例传递一个初始化的 DataSet、一个连接字符串、一个查询字符串(它是一个 Transact-SQL SELECT 语句)和一个包含数据库表名称的字符串。然后该示例创建一个 SqlCommandBuilder。[Visual Basic] Public Shared Function SelectSqlSrvRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet Dim myConn As New SqlConnection(myConnection) Dim myDataAdapter As New SqlDataAdapter() myDataAdapter.SelectCommand = New SqlCommand(mySelectQuery, myConn) Dim cb As SqlCommandBuilder = New SqlCommandBuilder(myDataAdapter) myConn.Open() Dim ds As DataSet = New DataSet myDataAdapter.Fill(ds, myTableName) ' Code to modify data in DataSet here ' Without the SqlCommandBuilder this line would fail. myDataAdapter.Update(ds, myTableName) myConn.Close() End Function 'SelectSqlSrvRows[C#] public static DataSet SelectSqlSrvRows(string myConnection, string mySelectQuery, string myTableName) { SqlConnection myConn = new SqlConnection(myConnection); SqlDataAdapter myDataAdapter = new SqlDataAdapter(); myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn); SqlCommandBuilder cb = new SqlCommandBuilder(myDataAdapter); myConn.Open(); DataSet ds = new DataSet(); myDataAdapter.Fill(ds, myTableName); //code to modify data in DataSet here //Without the SqlCommandBuilder this line would fail myDataAdapter.Update(ds, myTableName); myConn.Close(); return ds; }
学习!不用update恐怕不行把,即使使用sqldataadapter也是使用update的!
UP 楼上方法,我已经试过了。但无法做到通用性!!! 这样会对每一SQL语句,要写UPDATE table set ** where SQL 语句;有没有象DELPHI中table 控件啊???????
[Visual Basic, C#, C++] 下面的示例使用 SqlCommand 以及 SqlDataAdapter 和 SqlConnection 从数据源选择行。给该示例传递一个初始化的 DataSet、一个连接字符串、一个查询字符串(它是一个 Transact-SQL SELECT 语句)和一个包含数据库表名称的字符串。然后该示例创建一个 SqlCommandBuilder。[Visual Basic]
Public Shared Function SelectSqlSrvRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet
Dim myConn As New SqlConnection(myConnection)
Dim myDataAdapter As New SqlDataAdapter()
myDataAdapter.SelectCommand = New SqlCommand(mySelectQuery, myConn)
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(myDataAdapter) myConn.Open() Dim ds As DataSet = New DataSet
myDataAdapter.Fill(ds, myTableName) ' Code to modify data in DataSet here ' Without the SqlCommandBuilder this line would fail.
myDataAdapter.Update(ds, myTableName) myConn.Close()
End Function 'SelectSqlSrvRows[C#]
public static DataSet SelectSqlSrvRows(string myConnection, string mySelectQuery, string myTableName)
{
SqlConnection myConn = new SqlConnection(myConnection);
SqlDataAdapter myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);
SqlCommandBuilder cb = new SqlCommandBuilder(myDataAdapter); myConn.Open(); DataSet ds = new DataSet();
myDataAdapter.Fill(ds, myTableName); //code to modify data in DataSet here //Without the SqlCommandBuilder this line would fail
myDataAdapter.Update(ds, myTableName); myConn.Close(); return ds;
}
楼上方法,我已经试过了。但无法做到通用性!!!
这样会对每一SQL语句,要写UPDATE table set ** where SQL 语句;有没有象DELPHI中table 控件啊???????
如果是多个SQL语句,数据适配器.UPDATE 就会报错了
this.oleDbDataAdapter1 .SelectCommand.CommandText=this.richTextBox1 .Text .Trim ();//动态导入SQL语句
ds=new DataSet ();
this.oleDbDataAdapter1 .Fill (this.ds );
this.dataGrid1 .DataSource =this.ds.Tables[0] ;
//this.dataSet1.Clear ();
this.oleDbConnection1 .Close ();//------------------------------------
this.oleDbDataAdapter1 .Update(this.ds );
this.ds.Clear ();
this.ds.Dispose();
this.oleDbConnection1 .Close ();
1. select * from a//第一次可以更新数据库
2. select * from b//第二次就要保存,发现oleDbDataAdapter1中字段还是A 表字段
我是想公用一个oleDbDataAdapter1 或则寻求数据绑定更好办法
多帮忙!!!