无法将数据插入数据库

时间:2012-03-29 19:36:56

标签: c# asp.net sql-server database insert

我只想要我的标题所说的内容。我已经阅读过所有以前的类似帖子,但我找不到解决方案。请你看看我的代码吗? 编辑:我没有任何异常。我只是没有看到数据库中的新数据 EDIT2:前4个答案没有解决我的问题,因为我编辑了代码并添加了executenonquery命令。

int admin = 23;
SqlConnection thisConnection = new SqlConnection(
    ConfigurationManager.ConnectionStrings[
    "Data Source=...;Persist Security Info=True;User ID=myusername;Password=mypassword"]
    .ConnectionString);
SqlCommand nonqueryCommand = thisConnection.CreateCommand();
thisConnection.Open();
nonqueryCommand.CommandText = "INSERT INTO Account (Username,Password,AdministratorId) VALUES (@username,@password,@admin)";

nonqueryCommand.Parameters.Add("@username", SqlDbType.VarChar, 20);
nonqueryCommand.Parameters["@username"].Value = UsernameTextbox.Text.ToString();
nonqueryCommand.Parameters.Add("@password", SqlDbType.VarChar, 15);
nonqueryCommand.Parameters["@password"].Value = PasswordTextbox.Text.ToString();
nonqueryCommand.Parameters.Add("@admin", SqlDbType.Int);
nonqueryCommand.Parameters["@admin"].Value = admin;

EDIT:nonquerycommand.ExecuteNonQuery();


thisConnection.Close();

6 个答案:

答案 0 :(得分:6)

您似乎并未实际执行查询。在关闭连接之前执行它。

nonquerycommand.ExecuteNonQuery();

答案 1 :(得分:3)

这里有两件事情立即跳出来。

  1. ConfigurationManager.ConnectionStrings检索连接字符串时,您应该在配置文件中传递连接字符串的名称,而不是它自己的连接字符串。我怀疑你甚至可能没有获得有效的连接字符串。

  2. 您需要在ExecuteNonQuery()个实例上致电nonqueryCommand

答案 2 :(得分:2)

而不是

nonqueryCommand.Parameters.Add("@username", SqlDbType.VarChar,20);
nonqueryCommand.Parameters["@username"].Value = UsernameTextbox.Text.ToString();

使用

nonqueryCommand.Parameters.AddWithValue("@username", UsernameTextbox.Text.ToString());

执行查询:

nonquerycommand.ExecuteNonQuery();

答案 3 :(得分:2)

Chris Farmer有钱。

添加...

nonqueryCommand.ExecuteNonQuery();

答案 4 :(得分:0)

在执行查询之前必须为命令分配连接 为此在thisConnection.Open();

之前添加以下行
nonqueryCommand.Connection=thisConnection;

答案 5 :(得分:0)

您必须执行查询并在此之后关闭您的连接,如下所示

nonquerycommand.ExecuteNonQuery();

或者如果要检查是否执行了查询

if(nonquerycommand.ExecuteNonQuery()>0){ //some message or function }

返回的值是该语句影响的行数。