【问题标题】:Sql Connection string and cant parameters visual studio 2013Sql Connection字符串和cant参数visual studio 2013
【发布时间】:2016-05-11 11:09:30
【问题描述】:
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

【问题讨论】:

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


    【解决方案1】:

    如果您的列名有多个单词,则需要将它们与方括号一起使用,例如[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 列应该是数字类型而不是字符类型。

    【讨论】:

    • 我的联系现在是真的,先生?谢谢之前:D
    • @AntoniAngga 我不能 100% 确定这一点。只需将您的服务器与 Visual Studio 连接并检查Server Explorer 窗口属性。它还会显示您的连接字符串。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您在查询中使用了错误的参数名称,应该是这样的

       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 更改

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-28
        • 1970-01-01
        • 1970-01-01
        • 2015-03-26
        • 2018-09-07
        相关资源
        最近更新 更多