我在用datatable更新数据时,明明已经生成了updatecommond串却不能最终导进数据库,各位高手请出手相助!!!
在下感激不尽
代码如下:
public static void test()
{
string constr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=";
using (SqlConnection conn = new SqlConnection(constr))
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM mytest", conn);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
builder.QuotePrefix = "[";
builder.QuoteSuffix = "]";
DataSet table = new DataSet();
conn.Open();
adapter.Fill(table, "table");
PrintValues(table.Tables["table"], "table");
///////////////////////////////////////////////////////////////////////////////////////////
DataColumn column;
DataTable mytable = new DataTable("temp");
column = new DataColumn("userid", typeof(System.Int32));
column.AutoIncrement = true;
mytable.Columns.Add(column);
column = new DataColumn("items", typeof(System.String));
mytable.Columns.Add(column);
column = new DataColumn("sex", typeof(System.String));
mytable.Columns.Add(column);
// Set primary key column.
//mytable.PrimaryKey = new DataColumn[] {mytable.Columns[0] };
// Accept changes.
DataRow row;
for (int i = 0; i <= 3; i++)
{
row = mytable.NewRow();
row["items"] = "Items*" + i;
row["sex"] = i + "->" + i;
mytable.Rows.Add(row);
}
mytable.AcceptChanges();
PrintValues(mytable, "mytable values");
mytable.PrimaryKey = new DataColumn[] { mytable.Columns[0] };
//////////////////////////////////////////////////////////////////////////////////////
table.Tables["table"].Merge(mytable, false);
PrintValues(table.Tables["table"], "table1 data (preserve changes)");
PrintValues(mytable, "mytable values");
/////////////////////////////////////////////////////////////////////////////////////////
// Code to modify data in the DataSet here.
// Without the SqlCommandBuilder, this line would fail.
table.Tables["table"].AcceptChanges();
adapter.Update(table, "table");
Console.Write(builder.GetUpdateCommand().CommandText.ToString());
conn.Close();
}
}
在下感激不尽
代码如下:
public static void test()
{
string constr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=";
using (SqlConnection conn = new SqlConnection(constr))
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM mytest", conn);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
builder.QuotePrefix = "[";
builder.QuoteSuffix = "]";
DataSet table = new DataSet();
conn.Open();
adapter.Fill(table, "table");
PrintValues(table.Tables["table"], "table");
///////////////////////////////////////////////////////////////////////////////////////////
DataColumn column;
DataTable mytable = new DataTable("temp");
column = new DataColumn("userid", typeof(System.Int32));
column.AutoIncrement = true;
mytable.Columns.Add(column);
column = new DataColumn("items", typeof(System.String));
mytable.Columns.Add(column);
column = new DataColumn("sex", typeof(System.String));
mytable.Columns.Add(column);
// Set primary key column.
//mytable.PrimaryKey = new DataColumn[] {mytable.Columns[0] };
// Accept changes.
DataRow row;
for (int i = 0; i <= 3; i++)
{
row = mytable.NewRow();
row["items"] = "Items*" + i;
row["sex"] = i + "->" + i;
mytable.Rows.Add(row);
}
mytable.AcceptChanges();
PrintValues(mytable, "mytable values");
mytable.PrimaryKey = new DataColumn[] { mytable.Columns[0] };
//////////////////////////////////////////////////////////////////////////////////////
table.Tables["table"].Merge(mytable, false);
PrintValues(table.Tables["table"], "table1 data (preserve changes)");
PrintValues(mytable, "mytable values");
/////////////////////////////////////////////////////////////////////////////////////////
// Code to modify data in the DataSet here.
// Without the SqlCommandBuilder, this line would fail.
table.Tables["table"].AcceptChanges();
adapter.Update(table, "table");
Console.Write(builder.GetUpdateCommand().CommandText.ToString());
conn.Close();
}
}
解决方案 »
- LabView怎么得到没一个点的值
- 新建了一个类库,当我添加引用时找不到“Microsoft.Practices.EnterpriseLibrary.Common“请问各位这个怎么添加
- 有无人知道CSDN首页上的广告轮转是怎样实现的呢??
- 关于gridView 与两个ObjectDataSource 的互相绑定
- 马甲散分。
- 谁能给一个好的数据库操作catch{}抛出错误的代码例子,采用马上结贴!
- Asp.Net讨论之脚本(JavaScript,VbScript)
- 关于Response输出JavaScript的问题!
- 在webconfig已经设置enableViewState="false"了,有什么方法在某个页面中启用ViewState
- 如何将从vss获取最新源代码编译完毕后 及时方便地发布到服务器上?请教各位。
- OnClientClick 事件的问题! ! !
- 对 Bind 的调用格式不正确。
安全提示:腾讯公司提醒您警惕“QQ中奖”骗局。张锐 18:15:03
public static void test()
{
string constr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=";
using (SqlConnection conn = new SqlConnection(constr))
{
try
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM mytest", conn);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
builder.QuotePrefix = "[";
builder.QuoteSuffix = "]";
DataTable thetable = new DataTable();
conn.Open();
adapter.Fill(thetable);
PrintValues(thetable, "the table from database");
///////////////////////////////////////////////////////////////////////////////////////////
DataColumn column;
DataTable mytable = new DataTable("temp");
column = new DataColumn("userid", typeof(System.Int32));
column.AutoIncrement = true;
mytable.Columns.Add(column);
column = new DataColumn("items", typeof(System.String));
mytable.Columns.Add(column);
column = new DataColumn("sex", typeof(System.String));
mytable.Columns.Add(column);
DataRow row;
for (int i = 0; i <= 3; i++)
{
row = mytable.NewRow();
row["items"] = "Items*" + i;
row["sex"] = i + "->" + i;
mytable.Rows.Add(row);
}
mytable.AcceptChanges();
PrintValues(mytable, "the table i make");
mytable.PrimaryKey = new DataColumn[] { mytable.Columns[0] };
DataTable table = thetable.Copy();
PrintValues(table, "-------------tabal clone-------------");
//////////////////////////////////////////////////////////////////////////////////////
table.Merge(mytable, false);
PrintValues(table, "-----------the table after merge()----------");
for (int item = 0; item < thetable.Rows.Count; item++)
{
for (int index = 0; index < table.Columns.Count; index++)
{
thetable.Rows[item][index] = table.Rows[item][index];
}
}
adapter.UpdateCommand = builder.GetUpdateCommand();
adapter.DeleteCommand = builder.GetDeleteCommand();
adapter.InsertCommand = builder.GetInsertCommand();
int num=adapter.Update(thetable);
thetable.AcceptChanges();
PrintValues(thetable, " table values ");
//adapter.Update(table);
Console.WriteLine("-----------------------------------");
// Console.WriteLine(num);
Console.WriteLine("-----------------------------------");
Console.Write(builder.GetUpdateCommand().CommandText.ToString());
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
}