C# 将数据插入sql server失败,没有任何原因
我非常习惯于将c#与SQL server结合使用。我不知道为什么一个简单的语句不能插入数据。我的代码如下:C# 将数据插入sql server失败,没有任何原因,c#,sql-server,C#,Sql Server,我非常习惯于将c#与SQL server结合使用。我不知道为什么一个简单的语句不能插入数据。我的代码如下: query = "INSERT INTO MCDPhoneNumber ([MCDID],[PhoneNumber])" + "VALUES("+maxid+", '"+tel+"')"; SqlConnection conn = new SqlConnection("Data Source=source; ..."); SqlCommand
query = "INSERT INTO MCDPhoneNumber ([MCDID],[PhoneNumber])" +
"VALUES("+maxid+", '"+tel+"')";
SqlConnection conn = new SqlConnection("Data Source=source; ...");
SqlCommand newCommand = new SqlCommand(query, conn);
int success= myCommand.ExecuteNonQuery();
if (success!= 1)
{
MessageBox.Show("It didn't insert anything:" + query);
}
首先让我告诉大家,我知道我应该使用参数来表示数据,我一开始是这样做的,但当它失败时,我尝试了一个简单的查询,但仍然失败。此外,我可以看出,在另一个表中的插入之前,我有一个类似的插入,它可以工作。更有趣的是,当我将粘贴查询复制到SQLServerManagementStudio时,它可以工作。它也不会报告过程中的任何错误 ====================================编辑===============================
SqlCommand newCommand = new SqlCommand(query, conn);
如果您希望使用旧的命令对象(即myCommand),请使用以下代码,而不是创建新命令(newCommand)
然后执行它
您正在使用newCommand绑定查询,并执行myCommand
===============================编辑===============================
SqlCommand newCommand = new SqlCommand(query, conn);
这里为SQLCOMMAND对象定义了newCommand
int success= myCommand.ExecuteNonQuery();
您正在以myCommand的身份访问它
而且我认为您没有打开连接首先,您将命令定义为
newCommand
,而是执行myCommand
您应该始终在sql查询中使用。这种类型的字符串连接对攻击是开放的
请对您的错误消息更加礼貌。
:)
您是否应该打开连接?出于对所有神圣内容的热爱,请使用参数,而不是串联字符串。您可以发布真正的代码吗?我没有看到对连接的Open()调用,也没有看到对连接和command.debug使用块的年度消息。描述的不仅仅是错误。是的,我使用了旧命令而不是新命令!!顺便说一句,我拒绝了连接,因为否则它会崩溃。
query = "INSERT INTO MCDPhoneNumber (MCDID, PhoneNumber) VALUES(@maxid, @tel)";
using(SqlConnection conn = new SqlConnection("Data Source=source; Initial Catalog=base; Integrated Security = true"))
{
SqlCommand newCommand = new SqlCommand(query, conn);
conn.Open();
newCommand.Parameters.AddWithValue("@maxid", maxid);
newCommand.Parameters.AddWithValue("@tel", tel);
int success= newCommand.ExecuteNonQuery();
if (success != 1)
{
MessageBox.Show("It didn't insert shit:" + query);
}
}