我的代码:
OleDbConnection thisConnection=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\new\news.mdb");
thisConnection.Open();
OleDbDataAdapter thisAdapter = new OleDbDataAdapter("SELECT CustomerID,CompanyName FROM Customers",thisConnection);
OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);DataSet ds= new DataSet();
thisAdapter.Fill(ds,"Customers");Label1.Text=ds.Tables["Customers"].Rows.Count.ToString();
DataColumn[] keys= new DataColumn[1];
keys[0]=ds.Tables["Customers"].Columns["CustomerID"];
ds.Tables["Customers"].PrimaryKey=keys;
DataRow FindRow =ds.Tables["Customers"].Rows.Find("id号码99");
if(FindRow!=null)
{FindRow.Delete();
thisAdapter.Update(ds,"Customers");
thisAdapter.Fill(ds,"Customers");
}
Label2.Text=ds.Tables["Customers"].Rows.Count.ToString();
thisConnection.Close();
Access数据库
抛出异常:System.InvalidOperationException: 对于不返回任何键列信息的 SelectCommand 不支持 DeleteCommand 的动态 SQL 生成.
数据库里也设置了主键的.对数据库的添加、修改都没问题.就只删除会抛出异常........
OleDbConnection thisConnection=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\new\news.mdb");
thisConnection.Open();
OleDbDataAdapter thisAdapter = new OleDbDataAdapter("SELECT CustomerID,CompanyName FROM Customers",thisConnection);
OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);DataSet ds= new DataSet();
thisAdapter.Fill(ds,"Customers");Label1.Text=ds.Tables["Customers"].Rows.Count.ToString();
DataColumn[] keys= new DataColumn[1];
keys[0]=ds.Tables["Customers"].Columns["CustomerID"];
ds.Tables["Customers"].PrimaryKey=keys;
DataRow FindRow =ds.Tables["Customers"].Rows.Find("id号码99");
if(FindRow!=null)
{FindRow.Delete();
thisAdapter.Update(ds,"Customers");
thisAdapter.Fill(ds,"Customers");
}
Label2.Text=ds.Tables["Customers"].Rows.Count.ToString();
thisConnection.Close();
Access数据库
抛出异常:System.InvalidOperationException: 对于不返回任何键列信息的 SelectCommand 不支持 DeleteCommand 的动态 SQL 生成.
数据库里也设置了主键的.对数据库的添加、修改都没问题.就只删除会抛出异常........
解决方案 »
- 设置Require secure channel(SSL)
- QQ空间打开后显示相册,再点进去是图片列表,再单击是幻灯片播放的路径
- asp.net怎么发布网站
- 关于添加ISAPI filter dll文件的方式。
- 关于RowDataBound 菜鸟问题...谢谢!
- 顶者有分 控件位置的问题 巨郁闷 走过路过的全帮忙看看吧。
- 为什么会出现这样的怪问题呀,大家都来看看,来者散分,回答出问题者高分送上
- *********关于发送HTML格式邮件的问题!************
- Page.Init+=new System.EventHandler(Page_Init);請問這句是什么意思﹖
- 子页中如何显示母版页中隐藏的控件
- 在页面提交的时候,不能在后台.cs中提交form表单同时执行业务处理程序?
- 欢迎加入IT讨论技术群(11375923)
{
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection("连接字符串");
System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand();
cm.Connection = cnn;
cm.CommandText = "select top 10 * from table1";
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cm); DataTable dt = new DataTable();
da.Fill(dt);
da.FillSchema(dt,System.Data.SchemaType.Mapped);//这是必须的,要载入数据表结构,如果不从数据库载入表结构,则至少需要手工写代码设置DataTable的主键
//下面插入多条数据
for(int i=0;i<10;i++)
{
DataRow newRow = dt.NewRow();
newRow[0] = 123;
newRow[1] = "abc";
//....
dt.Rows.Add(newRow);
}
//下面重新写回数据库
System.Data.SqlClient.SqlCommandBuilder cb = new System.Data.SqlClient.SqlCommandBuilder(da);//这句看起来没什么作用,但实际上很关键,如果没有这个就不能用da.Update方法
cnn.Open();
da.Update(dt);
cnn.Close(); dt.AcceptChanges();
}