我是控制台应用程序的新手。现在我为数据库中的插入值编写了一个示例函数。我的数据库连接没有问题。但我的valuse没有插入表中。请找到问题并告诉我。
这是我的代码
static void Main(string[] args)
{
try
{
string sConnectionString = "Data Source=my ipaddress;Network Library=DBMSSOCN;Initial Catalog=db;user id=user;Password=password";
string sSQL = "";
using (var connection = new SqlConnection(sConnectionString))
{
connection.Open();
Console.WriteLine("OK");
for (int i = 1; i <= 5; i++)
{
sSQL = "INSERT INTO test " +
"(id) " +
"VALUES (" + i + ")";
Console.WriteLine(i + " inserted successfully");
}
SqlCommand objCmd = new SqlCommand(sSQL, connection);
}
}
catch (DbException)
{
Console.WriteLine("NOT OK");
}
}
答案 0 :(得分:6)
您根本没有执行命令 - 您正在创建SqlCommand
,然后对其执行任何操作。您需要致电ExecuteNonQuery()
。
但是,您应该也停止构建这样的SQL。您应该立即开始使用参数化SQL 。像这样:
using (var connection = new SqlConnection(sConnectionString))
{
connection.Open();
var sql = "INSERT INTO test (id) VALUES (@id)";
using (var command = new SqlCommand(sql, connection))
{
// Adjust this to match the type of the id field
var parameter = command.Parameters.Add("@id", SqlDbType.Int);
for (int i = 1; i <= 5; i++)
{
parameter.Value = i;
command.ExecuteNonQuery();
}
}
}