【发布时间】:2019-05-27 12:12:03
【问题描述】:
我在为学校制作项目时遇到了一个问题,我们应该将数据从 .txt 文件导入到我们的 C# 数据库中。我以为我已经弄清楚了,但是我的“插入”行没有将数据插入到我的表中。所以,最后,我尝试只插入 1 行,所有值都写入,它仍然不会将数据插入到数据库中。
我通过右键单击我的表并从我的代码中复制粘贴插入行来尝试“新查询”选项,并且效果很好,所以我不知道为什么代码中的行不起作用.
class Program
{
static void Main(string[] args)
{
string connectionString = @"Data Source= (LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|BazaPRO2.mdf;Integrated Security=True;Connect Timeout=30";
SqlConnection dataConnection = new SqlConnection(connectionString);
string q;
dataConnection.Open();
q = "INSERT INTO Sola(SolaID,Naziv,Naslov,Kraj,Posta,Telefon,Eposta) VALUES(1,'Test','Test','Test',1000,'Test','Test')";
SqlCommand dataCommand = new SqlCommand(q, dataConnection);
try
{
dataCommand.ExecuteNonQuery();
Console.WriteLine("Success");
dataConnection.Close();
}
catch { Console.WriteLine("Fail"); }
}
}
我尝试将 executenonquery 行粘贴到 try 块中,它确实在我的屏幕上显示“Success”,但插入行没有执行。
【问题讨论】:
-
你忘记提交了。
-
@AviMeltser 这是自动提交模式,或者没有启动事务。所以我怀疑这是问题所在。
-
可能会受益于检查工作示例并使用参数而不是纯文本 - stackoverflow.com/questions/12939501/…
-
ExecuteNonQuery返回受影响的行数。检查一下,如果你得到一个,那么当你检查是否插入了记录时,你可能正在查看错误的数据库。 -
插入几乎肯定会执行。另一方面,您验证它正在发生的方式是另一回事。特别是,
AttachDbFileName可能不是 work like you think it does。
标签: c# sql-insert