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
答案 0 :(得分:2)
从您的字段和参数中取出空格。
答案 1 :(得分:2)
如果您的列名称包含多个单词,则需要使用方括号作为[Tanggal Produksi]
和[Nama Karyawan]
等。但我建议您使用一个单词更改它们。最好将参数名称保留为一个单词。
还可以使用using
statement自动处理您的连接和命令,而不是手动调用Close
方法。
尽可能多地使用AddWithValue
。 It 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();
}
顺便说一句,根据他们的名字,您的IdProduksi
和IdPhoto
列应该是某种数字类型而不是字符类型。
答案 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