当前位置: 首页 > 知识库问答 >
问题:

为什么我的查询不能在我的代码中执行,而它在正常的SQL中执行得很好呢?

孙泉
2023-03-14

我尝试了“New Query”选项,右键单击我的表并从代码中复制粘贴插入行,结果工作得很好,所以我不知道代码中的行为什么不工作。

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"); }
    }
}

我尝试在try块中粘贴executenonquery行,它确实在我的屏幕上写了“success”,但插入行没有执行。

共有1个答案

锺离穆冉
2023-03-14

检查DataCommand.ExecuteNonQuery();(整数值)的返回值,如果返回-1错误(例如事务回滚)。如果为0,则不影响任何行。

int return_value = dataCommand.ExecuteNonQuery();
if(return_value > 0)
   //goood :)
else
   //something wrong :(

编辑:

Btw最好在使用命令后处理它们,如下所示:

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();
AppDomain.SetData("DataDirectory", "C:\\TEST\\");
 类似资料:
  • 我的桌子描述是 我的疑问是 如何使用hibernate执行此查询。Hibernate应该返回类型为的对象列表。?

  • 我正在运行这样一个简单的SQL连接和select,但在运行查询时,我遇到了非常奇怪的错误。 警告:mysqli_fetch_array()希望参数1是mysqli_结果,布尔值在第23行的C:\xampp\htdocs\Webmaster\run\forum_mc.php中给出 警告:mysqli_query():第24行()上C:\xampp\htdocs\Webmaster\run\forum

  • 问题内容: 我正在学习Go,并且想尝试goroutine和频道。 这是我的代码: 结果如下: 我不明白为什么我的goroutine永远不会执行。没有输入“进入goroutine”,并且没有任何错误消息。 问题答案: 事实是您的goroutine开始执行,但是在执行任何操作之前就结束了,因为您的程序在打印后立即停止:goroutine的执行与主程序无关,但是将在与程序相同的位置处停止。因此,基本上,

  • 我遇到了用ProcessBuilder执行Windows程序的问题。下面的代码将生成一个命令数组,如: 当我调试Java程序时,我可以看到gdalwarp.exe是可执行的,并且环境设置与在cmd终端中执行gdalwarp.exe时相同。processBuilder似乎不执行GDalWarp。我得到的退出代码是-1073741511,它应该是0或-1。errorStream是空的,我没有得到任何打

  • 问题内容: 给定我要提取的字符串和。我为此创建了正则表达式。 我在RegexPlanet和regex101上测试了regex 。两种工具都能给我带来预期的结果,但是当我尝试在代码中使用它时,却找不到匹配的结果。我使用以下代码片段测试正则表达式: 输出是 我使用Java 8来编译和运行程序。为什么正则表达式不能与在线工具一起使用,而不能在我的程序中使用? 问题答案: 一个对象允许您对其进行多次查询,

  • 问题内容: 3年前,我可以在express.js中进行多个res.send。 甚至编写setTimeout来显示实时输出。 现在它将抛出: 我知道nodejs和express已更新。为什么现在不能这样做?还有其他想法吗? 找到了解决方案,但API参考http://expressjs.com/4x/api.html中没有“ res.write” … :S 问题答案: 也许您需要: 隐式调用,后跟。如