错误信息如下:
E:\Code\Visual.Net\WebTest\1103>DataSetExample CompanyName Phone
____________________________________________________________
Speedy Express (503) 555-9831
United Package (503) 555-3199
Federal Shipping (503) 555-9931
Koukai 13338656561未处理的异常: System.InvalidOperationException: 当传递具有新行的 DataRow 集合时
,更新要求有效的 InsertCommand。
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMappi
ng tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)
at DataSetsExample.Main(String[] args)代码如下:
using System;
using System.Data;
using System.Data.SqlClient;class DataSetsExample
{
static void Main(string[] args)
{
string ConnStr = "Data Source = (local)\\NetSDK;Initial Catalog = NorthWind;"+
"User ID=SA;PassWord=()bbvoip12";
SqlConnection Conn = null;
try
{
Conn = new SqlConnection(ConnStr);
//Conn.Open();
DataSet shippersDS = new DataSet();
SqlDataAdapter shippersAdapter = new SqlDataAdapter("Select * from Shippers",Conn);
shippersAdapter.Fill(shippersDS,"Shippers");
DataTable shippersTable = shippersDS.Tables["Shippers"];
DataRow newShipper = shippersTable.NewRow();
newShipper["CompanyName"] = "Koukai";
newShipper["Phone"] = "13338656561";
shippersTable.Rows.Add(newShipper);
Console.WriteLine();
for(int i=1;i<shippersTable.Columns.Count;i++)
{
Console.Write("{0}",shippersTable.Columns[i].Caption.PadLeft(20,' '));
}
Console.WriteLine("\n{0}","".PadLeft(60,'_'));
string CompanyName;
string Phone;
foreach(DataRow shipper in shippersTable.Rows)
{
CompanyName=(string)shipper["CompanyName"];
Phone = (string)shipper["Phone"];
Console.WriteLine("{0}{1}",CompanyName.PadLeft(20,' '),Phone.PadLeft(20,' '));
}
shippersAdapter.Update(shippersDS,"Shippers");
}
catch(SqlException e)
{
Console.WriteLine("SQL Exception Message:{0}",e);
}
}
}
E:\Code\Visual.Net\WebTest\1103>DataSetExample CompanyName Phone
____________________________________________________________
Speedy Express (503) 555-9831
United Package (503) 555-3199
Federal Shipping (503) 555-9931
Koukai 13338656561未处理的异常: System.InvalidOperationException: 当传递具有新行的 DataRow 集合时
,更新要求有效的 InsertCommand。
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMappi
ng tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)
at DataSetsExample.Main(String[] args)代码如下:
using System;
using System.Data;
using System.Data.SqlClient;class DataSetsExample
{
static void Main(string[] args)
{
string ConnStr = "Data Source = (local)\\NetSDK;Initial Catalog = NorthWind;"+
"User ID=SA;PassWord=()bbvoip12";
SqlConnection Conn = null;
try
{
Conn = new SqlConnection(ConnStr);
//Conn.Open();
DataSet shippersDS = new DataSet();
SqlDataAdapter shippersAdapter = new SqlDataAdapter("Select * from Shippers",Conn);
shippersAdapter.Fill(shippersDS,"Shippers");
DataTable shippersTable = shippersDS.Tables["Shippers"];
DataRow newShipper = shippersTable.NewRow();
newShipper["CompanyName"] = "Koukai";
newShipper["Phone"] = "13338656561";
shippersTable.Rows.Add(newShipper);
Console.WriteLine();
for(int i=1;i<shippersTable.Columns.Count;i++)
{
Console.Write("{0}",shippersTable.Columns[i].Caption.PadLeft(20,' '));
}
Console.WriteLine("\n{0}","".PadLeft(60,'_'));
string CompanyName;
string Phone;
foreach(DataRow shipper in shippersTable.Rows)
{
CompanyName=(string)shipper["CompanyName"];
Phone = (string)shipper["Phone"];
Console.WriteLine("{0}{1}",CompanyName.PadLeft(20,' '),Phone.PadLeft(20,' '));
}
shippersAdapter.Update(shippersDS,"Shippers");
}
catch(SqlException e)
{
Console.WriteLine("SQL Exception Message:{0}",e);
}
}
}
SqlCommandBulider smb=new SqlCommandBulider(shippersAdapter);
SqlCommandBuilder smb=new SqlCommandBuilder(shippersAdapter);
shippersAdapter .InsertCommand=thisBuilder.GetInsertCommand();
楼主加后这个再试试