C# ExecuteOnQuery()无法操作
简单的C# ExecuteOnQuery()无法操作,c#,sql-server,visual-studio,database-connection,windows-applications,C#,Sql Server,Visual Studio,Database Connection,Windows Applications,简单的插入到使用C#应用程序的SQL Server中。已成功调试到下线 cmd.ExecuteNonQuery(); 程序没有出错或中断,但什么也没有发生。我探讨了开发/生产数据库出现问题的可能性,但似乎不是这样 下面的代码是单击“保存”按钮。数据库对象和连接参数的名称是通用的,而不是逐字的 string val1 = firstTextBox.Text; string val2 = secondTextBox.Text; string val3 = thirdTextBox.Text; S
插入到使用C#应用程序的SQL Server中。已成功调试到下线
cmd.ExecuteNonQuery();
程序没有出错或中断,但什么也没有发生。我探讨了开发/生产数据库出现问题的可能性,但似乎不是这样
下面的代码是单击“保存”按钮。数据库对象和连接参数的名称是通用的,而不是逐字的
string val1 = firstTextBox.Text;
string val2 = secondTextBox.Text;
string val3 = thirdTextBox.Text;
SqlConnection conn = new SqlConnection(@"Data Source=DataSource;Initial Catalog=Catalog;User ID=username;Password=password");
string sql = "INSERT INTO dbo.Table(col1, col2, col3) VALUES (" + val1 + "," + val2 + "," + val3 + "); ";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Insert Error:";
msg += ex.Message;
}
finally
{
conn.Close();
}
谢谢你的帮助 如果您的代码被逐字复制和粘贴,则您的连接字符串无效
数据源=数据源;初始目录=目录;用户ID=用户名;密码=密码
您需要为数据源
、初始目录
、用户ID
和密码
值填写正确的值
此外,除非您实际有一个名为table
的表,否则查询本身也是错误的
另外,您还应该研究(谷歌搜索)参数化SQL查询,以及使用语句正确处理资源(也称为实现IDisposable
)的。除了您的问题,您是否考虑过修复代码中存在的巨大SQL注入漏洞?跟踪您的应用程序,并向我们显示字符串SQL
设置为什么。请添加int-rowsAffected=cmd.ExecuteNonQuery(),并告诉我们rowsAffected的值。也许第三个文本框中的文本是”;回滚事务--
@RobertColumbiasql
非常棒。返回在SQL Server Mgmt Studio中非常有效的字符串@史蒂夫将其与MessageBox.Show一起添加(“rA”+rowsAffected)代码>在后面的行中。我能说的是,这个程序从来没有到过这里。没有消息框,这是肯定的。如果这是问题,则会引发异常,OP表示无错误。我认为数据源的名称可能是datasource
,等等。。OP对很多事情都不清楚。@Steve他正在吃任何System.Data.SqlClient.SqlException
错误…所以应用程序当然不会崩溃。将实际用户id和密码发布到堆栈可能不明智overflow@Sylverac这意味着你还假设他有一个名为table的表和3列col1,col2,col3?可能的但我相信它在发布之前已经被擦洗过了