Sql连接字符串和cant参数visual studio 2013

时间:2015-12-29 06:59:06

标签: c# sql-server visual-studio-2013

Using System.data.SqlClient;
private void button2_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\\Users\\Antoni Angga\\documents\\visual studio 2013\\Projects\\FullAndStarving\\FullAndStarving\\FaD.mdf;Integrated Security=True");
        {
            SqlCommand comm = new SqlCommand("insert into TabelProduksi(IdProduksi,IdPhoto,Tanggal Produksi,Nama Karyawan,Keterangan Photo,Photo) Values(@IdProduksi,@IdPhoto,@Tanggal Produksi,@Nama Karyawan,@Keterangan Photo,@Photo)", con);
            con.Parameters.AddWithValue("@IdProduksi",txtIdpro.Text);
            con.Parameters.AddWithValue("@IdPhoto",txtIdPhoto.Text);
            con.Parameters.AddWithValue("@Tanggal Produksi",dtmProduksi.Value);
            con.Parameters.AddWithValue("@Nama Karyawan", txtNamaKaryawan.Text);
            con.Parameters.AddWithValue("@Keterangan Photo", rxtKtrphoto.Text);

            con.Open();
            comm.ExecuteNonQuery();
            con.Close();

        }
你可以帮我找到那个无法找到的参数吗? 为什么? 那个连接字符串现在是真的吗? 因为我使用本地sql server:D

3 个答案:

答案 0 :(得分:2)

从您的字段和参数中取出空格。

答案 1 :(得分:2)

如果您的列名称包含多个单词,则需要使用方括号作为[Tanggal Produksi][Nama Karyawan]等。但我建议您使用一个单词更改它们。最好将参数名称保留为一个单词。

还可以使用using statement自动处理您的连接和命令,而不是手动调用Close方法。

尽可能多地使用AddWithValueIt may generate unexpected and surprising results sometimes。使用Add方法重载来指定参数类型及其大小。

using(var con = new SqlConnection(conString))
using(var comm = con.CreateCommand())
{
   com.CommandText = @"insert into TabelProduksi(IdProduksi,IdPhoto,[Tanggal Produksi],[Nama Karyawan],[Keterangan Photo],Photo) 
                       Values(@IdProduksi,@IdPhoto,@TanggalProduksi,@NamaKaryawan,@KeteranganPhoto,@Photo)";
   // Add your parameters with Add method.
   con.Open();
   comm.ExecuteNonQuery(); 
}

顺便说一句,根据他们的名字,您的IdProduksiIdPhoto列应该是某种数字类型而不是字符类型。

答案 2 :(得分:1)

您在查询中使用了错误的参数名称,它应该像

 SqlCommand comm = new SqlCommand("insert into TabelProduksi(IdProduksi,IdPhoto,TanggalProduksi,NamaKaryawan,Keterangan Photo,Photo) Values(@IdProduksi,@IdPhoto,@TanggalProduksi,@NamaKaryawan,@KeteranganPhoto,@Photo)", con);

您还必须从con.Parameters.AddWithValue

更改它