使用控制台应用程序时数据未插入数据库
Data not inserting in database when using console application
我是控制台应用程序的新手。现在我写了一个示例函数用于在数据库中插入值。我的数据库连接没有问题。但是我的值没有插入 table。请找到问题并告诉我。
这是我的代码
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");
}
}
您根本没有执行命令 - 您正在创建一个 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();
}
}
}
我是控制台应用程序的新手。现在我写了一个示例函数用于在数据库中插入值。我的数据库连接没有问题。但是我的值没有插入 table。请找到问题并告诉我。
这是我的代码
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");
}
}
您根本没有执行命令 - 您正在创建一个 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();
}
}
}