无法找到 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);
} 展开
//新建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);
} 展开
展开全部
//OleDbCommandBuilder s = new OleDbCommandBuilder(adapter);
adapter.Update(ds.Tables["TestTable"]);
1.因为adapter没有select语句,OleDbCommandBuilder写了也没用
2. adapter是直接new出来的,没有和任何表关联,需要明确指定更新的表
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 广告
2024-10-28 广告
作为优菁科技(上海)有限公司的一员,Altair HyperWorks是我们重点代理的CAE软件套件。该软件以其全面的仿真能力、丰富的建模工具和高效的优化设计功能著称,广泛应用于汽车、航空航天、能源及电子等行业。HyperWorks通过集成...
点击进入详情页
本回答由名片提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询