【问题标题】:insert problem in C#, using sqlcommand在 C# 中插入问题,使用 sqlcommand
【发布时间】:2010-07-23 11:56:13
【问题描述】:

当我运行这个 sql 时:

insert into table1(ID,Name) values ('10','Saeed');

似乎记录已插入,如果我使用 (select * from table1) 读取表,它会显示插入的记录,但关闭程序后,它会消失。

这是代码:

string constr="Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|" +   
    "\\Database1.mdf;Integrated Security=True;User Instance=True";

SqlConnection con = new SqlConnection(constr);
con.Open();

SqlCommand cmd = new SqlCommand(
    "insert into st (ID,Name) values ('10','saeed');", con);

cmd.ExecuteNonQuery();
cmd.Close();

我手动插入了一些记录,读取数据库时,手动插入的记录存在。

不是交易问题,交易解决不了!

【问题讨论】:

  • 也许你需要提交插入?
  • SqlTransaction tran = con.BeginTransaction(); ... tran.Commit();

标签: c# sql ado.net insert


【解决方案1】:

这个问题听起来像是您开始了一个事务并忘记提交它。但是,如果您使用的是您发布的确切代码,这不是交易问题,因为您没有使用。

这让我觉得你的连接字符串有些奇怪。

对于尝试将连接字符串更改为类似这样的东西的踢腿和咯咯笑

Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;

【讨论】:

  • 能否请您写下确切的连接字符串,您可以在问题中看到我的。
  • Initial Catalog=Database1;Data Source=;Integrated Security=True 还可以尝试更改当前连接字符串中的 User Instance=False。记录可能仅按该用户实例插入。这可能是您关闭应用程序后看不到新插入记录的原因。
【解决方案2】:

猜测:
您正在使用 SQL Server Express,并且项目中的“Database1.mdf”已配置(在属性窗口中)“复制到输出目录”值“始终”

【讨论】:

  • 我也有同样的感觉。让我们知道这是否是解决方案
  • 将属性更改为“如果较新”或“不要复制”。每当文件被复制时,数据就会丢失。
【解决方案3】:

尝试指定:“初始目录=InstanceDB;”以及确保在您重新启动应用程序时它不会创建新的数据库名称。

【讨论】:

    【解决方案4】:

    代码本身的错误 它的

    con.Close();

    不是

    cmd.Close();
    

    SqlCommand没有关闭方法

    【讨论】:

      【解决方案5】:

      我同意帕斯卡。听起来事务没有被提交。

      (已编辑以在下面的评论中提供更清晰的代码块)

      con.Open(); 
      trans = con.BeginTransaction(); 
      
      SqlCommand cmd = new SqlCommand( "insert into st (ID,Name) values ('10','saeed');", con);
      
      cmd.ExecuteNonQuery(); 
      tran.Commit(); 
      

      【讨论】:

      • 如何委托插入?
      • 嗯,基本上是这样的:con.Open(); trans = con.BeginTransaction(); SqlCommand cmd = new SqlCommand("插入st(ID,Name)值('10','saeed');", con); cmd.ExecuteNonQuery(); tran.Commit();这不是我的想法。你需要做一些谷歌来确认细节。
      猜你喜欢
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      相关资源
      最近更新 更多