代码返回true,但数据不在表中

时间:2019-05-12 13:51:09

标签: c# database ssms

我正在尝试将数据添加到SSMS中的数据库中,根据我的代码,我已成功插入数据库表中。我有没有数据的新的空行。这是我的代码示例。

SqlConnection conn = new SqlConnection("Server=.\\SQLEXPRESS;Database=OSMSSE;Integrated Security=True;connect timeout =30");
public void AddData(string word){

conn.Open();
string sql = "insert into TestBlock (Words) values(@word)"; 
SqlCommand  cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@word", word.ToLower());
int res = cmd.ExecuteNonQuery();
if ( res > 0)
{
Console.WriteLine("Inserted");
}
conn.Close();
}

这是没有数据的数据库表的图像。 Database table record SS

Database table Designer SS

2 个答案:

答案 0 :(得分:0)

根据您的屏幕截图,您的表名是TestBlock2,而不是TestBlock。这就是为什么您需要将命令修改为;

string sql = "insert into TestBlock2 (Words) values(@word)"; 

我还有一些建议;

  1. 您不应编写硬编码的连接字符串。您需要将其放入一些配置文件或一些设置文件。
  2. 您可能将conn用作代码中的字段。而是在方法中创建连接。
  3. 您需要使用using语句自动处理连接和命令。
  4. 不要使用AddWithValue方法。 It may generate unexpected results sometimes。改用Add方法(最好是Add(String, SqlDbType, Int32) overload

答案 1 :(得分:0)

问题在这一行

cmd.Parameters.AddWithValue("@word", word.ToLower());

此问题已解决。

cmd.Parameters.Add("@word", (String) word.ToLower());

将参数添加为对象。