无法找到 TableMapping['Table'] 或 DataTable“Table”

在网上找到这段代码,运行的时候总是报错“无法找到TableMapping['Table']或DataTable“Table””,帮忙看一下哪里错了//新建DataSet和... 在网上找到这段代码,运行的时候总是报错“ 无法找到 TableMapping['Table'] 或 DataTable“Table” ”,帮忙看一下哪里错了

//新建DataSet 和 DataTable
System.Data.DataSet ds = new System.Data.DataSet();
System.Data.DataTable dataTable1 = new System.Data.DataTable("TestTable");
System.Data.DataRow dr;
dataTable1.Columns.Add(new System.Data.DataColumn("Id", typeof(System.Int32)));
dataTable1.Columns.Add(new System.Data.DataColumn("Title", typeof(System.String)));
dataTable1.Columns.Add(new System.Data.DataColumn("Description", typeof(System.String)));
dataTable1.Columns[0].AutoIncrement = true;
dataTable1.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["Id"] };

//生成示例数据
for (int i = 0; i < 8; i++)
{
dr = dataTable1.NewRow();
dr["Title"] = "【孟子E章】" + i.ToString();
dr["Description"] = "【孟子E章】" + i.ToString();
dataTable1.Rows.Add(dr);
}
ds.Tables.Add(dataTable1);

//数据库连接字符串
String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\aspxWeb2.mdb";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
//定义插入数据的方法,
adapter.InsertCommand = new OleDbCommand("Insert Into TestTable([Title],[Description]) Values(@Title,@Description)", connection);
adapter.InsertCommand.Parameters.Add(new OleDbParameter("@Title", dataTable1.Columns["Title"]));
adapter.InsertCommand.Parameters.Add(new OleDbParameter("@Description", dataTable1.Columns["Description"]));
OleDbCommandBuilder s = new OleDbCommandBuilder(adapter);
adapter.Update(ds);
}
展开
 我来答
百度网友586e433
2011-10-11 · TA获得超过3491个赞
知道小有建树答主
回答量:1221
采纳率:0%
帮助的人:1423万
展开全部
//OleDbCommandBuilder s = new OleDbCommandBuilder(adapter);
adapter.Update(ds.Tables["TestTable"]);

1.因为adapter没有select语句,OleDbCommandBuilder写了也没用
2. adapter是直接new出来的,没有和任何表关联,需要明确指定更新的表
追问
dataTable1.Columns.Add(new System.Data.DataColumn("Title", typeof(System.String)));这条语句中的 typeof(System.String),可以这样用的?我换了另外一种方式插入数据,用 typeof(System.String)定义类型虽然编译的时候没错,运行就会报错。
你说的第一点我知道了
追答
adapter不要更新真个dataset,明确指定更新的表adapter.Update(ds.Tables["TestTable"]);

adapter.InsertCommand.Parameters.Add(new OleDbParameter("@Description", dataTable1.Columns["Description"]));
这一行也有问题,OleDbParameter(name,value),第二个value是OleDbParameter的值,不能传DataColumn

和datatable的列绑定要这样写
adapter.InsertCommand.Parameters.Add(new OleDbParameter("@Title",OleDbType.VarChar,255,"Title"));
adapter.InsertCommand.Parameters.Add(new OleDbParameter("@Description",OleDbType.VarChar,255,"Description"));
名片
2024-10-28 广告
作为优菁科技(上海)有限公司的一员,Altair HyperWorks是我们重点代理的CAE软件套件。该软件以其全面的仿真能力、丰富的建模工具和高效的优化设计功能著称,广泛应用于汽车、航空航天、能源及电子等行业。HyperWorks通过集成... 点击进入详情页
本回答由名片提供
百度网友2436015
2011-10-12
知道答主
回答量:29
采纳率:0%
帮助的人:18万
展开全部
数据库没有对应的TestTable表吧!
追问
你开玩笑的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式