使用相同的值多次运行查询

时间:2017-06-07 19:28:57

标签: c#

我正在使用c#并尝试多次插入sql同一个查询:   这是我的代码:

 SqlCommand cmd = new  SqlCommand ("insert into InventoryTransTemp (name) values ('test')",con);
 cmd.ExecuteNonQuery();

我怎样才能运行同样的查询示例5次?

我可以使用字符串来执行此操作吗?示例如果字符串计数= 5,则运行查询5次

2 个答案:

答案 0 :(得分:1)

通过用逗号分隔括号括起的行数据,可以使用单个INSERT命令插入多行。因此,您可以为要添加的行数创建循环,然后在每次迭代时将行数据值(和逗号)添加到查询字符串中:

var queryString = "INSERT INTO InventoryTransTemp ([name]) VALUES ";
var rowData = "('test')";
int numRows = 5;

for (int i = 0; i < numRows; i++)
{
    queryString += rowData;
    if (i < numRows - 1) queryString += ", ";
}

// At this point, query string looks like:
// "INSERT INTO InventoryTransTemp ([name]) VALUES ('test'), ('test'), ('test'), ('test'), ('test')"

SqlCommand cmd = new SqlCommand(queryString, con);
cmd.ExecuteNonQuery();

答案 1 :(得分:0)

如果要进行特定查询,可以在方法中使用。也许首先你应该搜索有多少相同的字符串计算如下:

public void run() {
  SqlCommand cmd = new SqlCommand("insert into InventoryTransTemp (name) values ('test')", con);
  cmd.ExecuteNonQuery();
}


public int findString() {
  int i = 0;
  SqlDataReader stRead = new sqlCommand("SELECT * FROM database ", con);
  while (stRead.Read()) {
    i++;
  }
  return i;
}
int i = findString();
for (int j = 0; j < i; j++) {
  run();
}