我有一个我正在研究的库存管理程序。数据库和表系统的设置方式是,每个类别都是不同的表。这是必要的,因为每个类别(即鞋子、电话、笔记本电脑)都有不同的字段来唯一标识每个产品。因此,我创建了一个表,然后通过 foreach 语句添加名为列的用户。我遇到的问题是它想在 ID 列已经存在时添加它。我尝试添加嵌套在 foreach 中的 If 语句,但它只是不断打破 foreach 循环。我只是还没有想出一种方法让它跳过 ID 列并继续添加每个列。
这是功能代码:
private void btnCreateCategory_Click(object sender, EventArgs e)
{
List<string> FieldNames = new List<string>();
foreach (var item in lstFieldNames.Items)
{
FieldNames.Add(lstFieldNames.Items.ToString());
}
DataTable NewCategory = new DataTable();
NewCategory = CreateTable(FieldNames);
dgPreviewAdd.DataSource = NewCategory;
using (SqlConnection Connection = new SqlConnection(
Helper.cnnVal("InventoryManager")))
{
using (SqlCommand command = new SqlCommand("", Connection))
{
command.CommandText = "Create Table tbl" +
NewCategory.TableName.ToString() + "(ID int)";
Connection.Open();
command.ExecuteNonQuery();
Connection.Close();
foreach (DataColumn newColumn in NewCategory.Columns)
{
If( newColumn.ColumnName("ID")
{
}
Else
{
SqlParameter colparam = new SqlParameter();
colparam.ParameterName = "@ColumnName";
colparam.Value = newColumn.ColumnName.ToString();
SqlParameter tblParam = new SqlParameter();
tblParam.ParameterName = "@TableName";
tblParam.Value = "tbl" + NewCategory.TableName.ToString();
command.Parameters.Add(colparam);
command.Parameters.Add(tblParam);
command.CommandText = "dbo.AddCategoryColumns";
command.CommandType = CommandType.StoredProcedure;
Connection.Open();
command.ExecuteNonQuery();
Connection.Close();
}
}
}
}
}
倚天杖
湖上湖
相关分类