【发布时间】:2021-01-19 10:44:54
【问题描述】:
我有在 SQL 表中添加值的代码:
SqlCommand command;
SqlDataAdapter adapter = new SqlDataAdapter();
String strSQL = "";
strSQL = "INSERT INTO tblTest (value1) VALUES ('" + strPLCData + "')";
command = new SqlCommand(strSQL, cnn);
adapter.InsertCommand = new SqlCommand(strSQL, cnn);
try
{
int rows = adapter.InsertCommand.ExecuteNonQuery();
txtStatusLogging.Text += "Inserted " + rows + " row(s) in the database." + Environment.NewLine;
}
catch (Exception ex)
{
MessageBox.Show("Failed to write to database : " + ex.Message);
}
command.Dispose();
但是当我想在数据库中添加未知数量的值时(根据未知大小的列表),我有点卡住了。
例如有时只添加 value1,其他时候添加 value1、value2 和 value3 ....(取决于某个列表中的内容)。
我该怎么做呢?
【问题讨论】:
-
我会说最好的解决方案取决于你的情况。这里有一些实用的解决方案: 1/ 最明显的解决方案是添加一个包含键/值对列的子表。 2/ 另一个常见的解决方案是在您的表中添加一个 XML 或 Json 列,其中包含您想要的所有值。 3/ 如果您对 DB 类型不严格,您可能会寻找文档数据库。
-
你好,你能详细说明解决方案1和2吗?解决方案 3 不是一个选项,因为它将是一个 SQL 数据库。
-
SQL Injection alert - 您应该不将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables
标签: c# sql-server