首页 > 解决方案 > 代码返回 true 但数据不在表中

问题描述

我正在尝试将数据添加到 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();
}

这是没有数据的数据库表的图像。 数据库表记录SS

数据库表设计器 SS

标签: c#databasessms

解决方案


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

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

我也有一些建议;

  1. 你不应该硬编码你的连接字符串。您需要将其放入一些配置文件或一些设置文件。
  2. 您可能conn在代码中使用您作为字段。取而代之的是,在您的方法中创建您的连接。
  3. 您需要使用using语句来自动处理您的连接和命令。
  4. 不要使用方法AddWithValue有时它可能会产生意想不到的结果。改用Add方法(最好Add(String, SqlDbType, Int32)是重载

推荐阅读