C# 如何给出ADO.NET参数
我想创建一个SQL命令,将记录添加到数据库中。我尝试了以下代码,但似乎不起作用:C# 如何给出ADO.NET参数,c#,sql,sql-server,ado.net,C#,Sql,Sql Server,Ado.net,我想创建一个SQL命令,将记录添加到数据库中。我尝试了以下代码,但似乎不起作用: SqlCommand comand = new SqlCommand("INSERT INTO Product_table Values(@Product_Name,@Product_Price,@Product_Profit,@p)", connect); SqlParameter ppar = new SqlParameter(); ppar.ParameterName = "@Product_Name"; p
SqlCommand comand = new SqlCommand("INSERT INTO Product_table Values(@Product_Name,@Product_Price,@Product_Profit,@p)", connect);
SqlParameter ppar = new SqlParameter();
ppar.ParameterName = "@Product_Name";
ppar.Value = textBox1.Text;
MessageBox.Show("Done");
comaand.Parameters.Add(ppar);
在您的情况下,看起来您正在使用.NET。使用参数非常简单,如下所示: C#
在您的情况下,看起来您正在使用.NET。使用参数非常简单,如下所示: C# 试试这个
command.Parameters.AddWithValue("@parameter",yourValue);
command.ExecuteNonQuery();
我的意思是你忘了使用command.executeNonQuery() 试试这个
command.Parameters.AddWithValue("@parameter",yourValue);
command.ExecuteNonQuery();
我的意思是你忘了使用command.executeNonQuery() 我认为这对你很有用
SqlCommand command = new SqlCommand("inserting", con);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@Firstname", SqlDbType.NVarChar).Value = TextBox1.Text;
command.Parameters.Add("@Lastname", SqlDbType.NVarChar).Value = TextBox2.Text;
command.ExecuteNonQuery();
我认为这对你很有用
SqlCommand command = new SqlCommand("inserting", con);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@Firstname", SqlDbType.NVarChar).Value = TextBox1.Text;
command.Parameters.Add("@Lastname", SqlDbType.NVarChar).Value = TextBox2.Text;
command.ExecuteNonQuery();
应使用类似以下内容:
SqlCommand cmd = new SqlCommand("INSERT INTO Product_table Values(@Product_Name, @Product_Price, @Product_Profit, @p)", connect);
cmd.Parameters.Add("@Product_Name", SqlDbType.NVarChar, ProductNameSizeHere).Value = txtProductName.Text;
cmd.Parameters.Add("@Product_Price", SqlDbType.Int).Value = txtProductPrice.Text;
cmd.Parameters.Add("@Product_Profit", SqlDbType.Int).Value = txtProductProfit.Text;
cmd.Parameters.Add("@p", SqlDbType.NVarChar, PSizeHere).Value = txtP.Text;
cmd.ExecuteNonQuery();
假设@p参数是某个NVarChar
最好避免使用AddWithValue,请参见此处的原因:
另外,在INSERT SQL语句中,最好在值本身之前提供值的名称(如数据库中所定义的),如所示,应使用如下内容:
SqlCommand cmd = new SqlCommand("INSERT INTO Product_table Values(@Product_Name, @Product_Price, @Product_Profit, @p)", connect);
cmd.Parameters.Add("@Product_Name", SqlDbType.NVarChar, ProductNameSizeHere).Value = txtProductName.Text;
cmd.Parameters.Add("@Product_Price", SqlDbType.Int).Value = txtProductPrice.Text;
cmd.Parameters.Add("@Product_Profit", SqlDbType.Int).Value = txtProductProfit.Text;
cmd.Parameters.Add("@p", SqlDbType.NVarChar, PSizeHere).Value = txtP.Text;
cmd.ExecuteNonQuery();
假设@p参数是某个NVarChar
最好避免使用AddWithValue,请参见此处的原因:
另外,在INSERT SQL语句中,最好在值本身之前提供值的名称(如数据库中定义的),如所示。你应该先试试,然后告诉我有什么问题。顺便说一句,上面代码中提到的“薪水”没有@at AddWithValue。@optional还是required?@FelixPamittan离开
AddWithValue
的一个不利方面是command.Parameters.Add(“salary”,SqlDbType.NVarChar)。Value=txtSalary.Text如果字符串为空,则代码>将失效。如果你想避免它,你必须为所有类型指定一个大小
;这变得异常乏味,甚至更容易出错。例如:空字符串的大小是多少?int
的大小是多少?唯一标识符的大小是多少*nvarchar(最大值)
的大小是多少?这些都是有答案的东西;但是(非常)不明显。我想是的。你应该先试试,然后告诉我有什么问题。顺便说一句,上面代码中提到的“薪水”没有@at AddWithValue。@optional还是required?@FelixPamittan离开AddWithValue
的一个不利方面是command.Parameters.Add(“salary”,SqlDbType.NVarChar)。Value=txtSalary.Text如果字符串为空,则代码>将失效。如果你想避免它,你必须为所有类型指定一个大小
;这变得异常乏味,甚至更容易出错。例如:空字符串的大小是多少?int
的大小是多少?唯一标识符的大小是多少*nvarchar(最大值)
的大小是多少?这些都是有答案的东西;但是(非常)不明显。不要认为问题是关于如何使用存储过程,他们正在尝试在命令下面插入一个简单的inserth.Parameters.Add(“@ParamName”,SqlDbType.xx)。Value=someValue确实是最好的语法(如中所解释的)不要认为问题是关于如何使用存储过程,他们尝试在命令.Parameters.Add(“@ParamName”,SqlDbType.xx)上插入一个简单的命令。Value=someValue确实是最好的语法(如中所述)