Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ExecuteOnQuery()无法操作_C#_Sql Server_Visual Studio_Database Connection_Windows Applications - Fatal编程技术网

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的值。也许第三个文本框中的文本是
”;回滚事务--
@RobertColumbia
sql
非常棒。返回在SQL Server Mgmt Studio中非常有效的字符串@史蒂夫将其与
MessageBox.Show一起添加(“rA”+rowsAffected)在后面的行中。我能说的是,这个程序从来没有到过这里。没有消息框,这是肯定的。如果这是问题,则会引发异常,OP表示无错误。我认为数据源的名称可能是
datasource
,等等。。OP对很多事情都不清楚。@Steve他正在吃任何
System.Data.SqlClient.SqlException
错误…所以应用程序当然不会崩溃。将实际用户id和密码发布到堆栈可能不明智overflow@Sylverac这意味着你还假设他有一个名为table的表和3列col1,col2,col3?可能的但我相信它在发布之前已经被擦洗过了