【发布时间】:2015-02-08 20:06:16
【问题描述】:
我对在 Visual Studio 中使用 DataSets 和 DataTables 比较陌生,目前正在尝试填充 DataTable 以查询 SQL Insert 语句。我现在用的是这个。
string query = "USE [Database] SELECT e.ID, e.FieldTypeDesc, e.FieldTypeNum, e.tblFieldRefID, f.TableName, f.RefColumn, f.ColumnName FROM tblEnum e JOIN tblFieldRef f ON e.tblFieldRefID = f.ID;";
string field0; //field0 - field12 declared
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
MRWPDataSet1 dsMRWP = new MRWPDataSet1();
SqlCommand cmdMRWP = new SqlCommand(query, conn);
SqlDataAdapter daMRWP = new SqlDataAdapter();
daMRWP.SelectCommand = cmdMRWP;
daMRWP.Fill(dsMRWP);
这一切似乎都按计划进行。不过,当我谈到这部分时......
foreach (DataRow drMRWP in dsMRWP.Tables[0].Rows)
{
field0 = drMRWP["Field0"].ToString();
field1 = drMRWP["Field1"].ToString(); //for field0 - field12
string update = "INSERT INTO [dbo].[Table] ([Code], [Description], [SendEmail], [Type], [CustomForeColor], [Inactive], [ModifiedDate], [CreatedDate], [ModifiedById], [CreatedById], [StartDate], [EndDate]) VALUES (field1, field2, field3, field4, field5, field5, field6, field7, field8, field9, field10, field11, field12)";
SqlCommand upd = new SqlCommand(update, conn);
}
它被完全跳过,显然没有值存储在 drMRWP 中。它甚至没有进入调试,只是跨过。
我对这一切都很陌生,所以我很可能忽略了某些东西或在某个地方犯了错误,但如果我能看到它可能是什么,那该死的。对此提供的任何见解,或简化可能过于复杂、草率的代码的建议将不胜感激。
【问题讨论】: