使用控制台应用程序中的ado.net将数据插入本地数据库

时间:2015-10-07 17:17:09

标签: c# sql-server

这是我到目前为止所写的内容。没有例外,所以我假设连接正常,但没有数据插入数据库表。请告诉我我的代码有什么问题

 SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MyETL.Properties.Settings.connectionStr"].ConnectionString);
            try
            {
                conn.Open();
                // foreach (student stu in stulist)
                // {
                string strQuery = "INSERT INTO Student(Sid,st_name) VALUES (@id,@name)";
                SqlCommand cmd = new SqlCommand(strQuery, conn);
                cmd.Connection = conn;
                cmd.Parameters.AddWithValue("@id", "111");
                cmd.Parameters.AddWithValue("@name", "nallia");


                cmd.ExecuteNonQuery();
            }
            catch
            {

                conn.Close();
            }

2 个答案:

答案 0 :(得分:0)

试试这个

 static void Insert()
    {
        try
        {
            string connectionString =System.Configuration.ConfigurationManager.ConnectionStrings["MyETL.Properties.Settings.connectionStr"].ConnectionString;
            using (SqlConnection conn =new SqlConnection(connectionString))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand("INSERT INTO Student(Sid,st_name) VALUES (" +
                       "@id,@name)", conn))
                {
                    cmd.Parameters.AddWithValue("@Id", 111);
                    cmd.Parameters.AddWithValue("@Name", "nallia");


                    int rows = cmd.ExecuteNonQuery();

                    //rows number of record got inserted
                }
            }
        }
        catch (SqlException ex)
        {
            //Log exception
            //Display Error message
        }
    }

答案 1 :(得分:0)

已经将近2。5年但是如果你还没有解决这个问题,你应该将“复制到输出目录”属性更改为“如果更新则复制”。您的数据库正在更改,但每次开始调试时,您都会读取数据库的初始版本,因此您会看到没有更改。