【发布时间】:2011-04-24 16:02:11
【问题描述】:
我想做一个非常简单的INSERT INTO 操作,但是没有任何反应。我没有看到任何错误,也没有看到数据库中的任何更改。
我怀疑我的连接字符串是错误的,但我怎么知道呢?如果是这样,我该如何解决? (本地主机)
protected void RegButton_Click(object sender, EventArgs e)
{
string connString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Bodin\\Desktop\\FullFart\\App_Data\\database.mdf;Integrated Security=True;User Instance=True";
string sql = "INSERT INTO student (navn, etternavn) " + "VALUES('" + NavnTextBox.Text + "', '" + EtterNavnTextBox.Text + "');";
SqlConnection conn = new SqlConnection(connString);
SqlCommand myCommand = new SqlCommand(sql,conn);
try
{
conn.Open();
myCommand.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex);
}
finally
{
conn.Close();
}
}
任何想法为什么上面的代码什么都不做? (它应该在每次执行时添加新行)
更新
与 SQL 注入有关。这是一些家庭作业的演示程序,这就是我不使用参数的原因。这是我朋友的笔记本电脑,我只安装了 Visual Studion 2008 和 SQL Server 2005。我没有任何其他小工具可以从 Visual Studio 手动将值添加到数据库中,这意味着数据库可以正常工作。但是如何正确配置连接字符串呢?
【问题讨论】:
-
使用 SQL Server Profiler 运行跟踪,以便查看查询是否执行。
-
抱歉,我对 .NET 很陌生,我只有 Visual Studio 2008。我在哪里可以选择执行该查询?
-
你还应该使用参数来避免sql注入(stackoverflow.com/questions/332365/…)。
-
@_simon_:如果我没记错的话,SQL Server Profiler 不是 SQL Server Express 的一部分(这是 sfrj 在查看连接字符串时似乎使用的)
-
ExecuteNonQuery返回受影响记录的数量。在您的情况下返回什么数字?
标签: c# sql-server visual-studio ado.net