c# - 为什么我的查询不会在我的代码中执行,而它在普通 sql 中执行得很好?
问题描述
我在为学校制作项目时遇到了一个问题,我们应该将数据从 .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”,但插入行不执行。
解决方案
dataCommand.ExecuteNonQuery();
如果返回 -1 出现问题(例如事务回滚) ,请检查 (integer Value) 的返回值。如果为 0,则不会影响任何行。
int return_value = dataCommand.ExecuteNonQuery();
if(return_value > 0)
//goood :)
else
//something wrong :(
编辑:
顺便说一句,最好在使用命令后处理命令,如下所示:
string connectionString = @"Data Source= (LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|BazaPRO2.mdf;Integrated Security=True;Connect Timeout=30";
SqlConnection dataConnection = new SqlConnection(connectionString);
dataConnection.Open();
string q = "INSERT INTO Sola(SolaID,Naziv,Naslov,Kraj,Posta,Telefon,Eposta) VALUES(1,'Test','Test','Test',1000,'Test','Test')";
using(SqlCommand dataCommand = new SqlCommand(q, dataConnection))
{
try
{
dataCommand.ExecuteNonQuery();
Console.WriteLine("Success");
}
catch { Console.WriteLine("Fail"); }
}
dataConnection.Close();
EDIT2:考虑评论中的问题。
你在说什么写|DataDirectory|
的是“在应用程序路径中搜索那个 dasabase”,如果你正在调试你的应用程序,这意味着它在输出调试文件夹中搜索 dabase ......如果你不认为你应该将数据库作为目标您的应用程序目录具有相对/绝对路径(查找AppDomain.SetData
方法)或将您的数据库复制到您的应用程序目录中......在不知道您的目标的情况下很难回答您:)
更具体地说,在初始化 SqlConnection 之前调用以下代码:
AppDomain.SetData("DataDirectory", "C:\\TEST\\");
设置|DataDirectory|
指向您的数据库路径。
推荐阅读
- php - phpinfo() 显示 opcache.blacklist_filename 文件,但内容被忽略
- r - 此页面上表格的 html 节点?
- ruby-on-rails - 访问 azure AD 时出现 Rails 6 CORS 问题
- css - tailwind css 配置文件背景图片问题
- r - 计算宽格式数据表行的权重
- html - 我怎么把这个变小
- python - 使用不解析日期的 Python Pandas 读取电子表格
- javascript - 我想为 node api 编写一个自定义错误处理
- python - Python Pandas - 将多个 URL 中的多个表抓取到一个组合数据框中
- sql - 给定条件沿同一列操作