使用控制台应用程序时数据未插入数据库

时间:2015-12-16 07:16:25

标签: c# database-connection console-application

我是控制台应用程序的新手。现在我为数据库中的插入值编写了一个示例函数。我的数据库连接没有问题。但我的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");
            }
}

1 个答案:

答案 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();
        }
    }
}