2

我刚开始在 Visual Studio 中学习 C#,我有一个任务要做。我必须连接到 SQL 数据库,执行选择查询并使用 Firebird 显示结果。我已经阅读了很多文章,但我被卡住了,因为每个人都告诉我要做不同的事情。有人可以帮助我并解释这是如何工作的吗?

using System;
using FirebirdSql.Data.FirebirdClient;

namespace ConsoleApp1
{
    class Program
    {
        static public void Main()
        {
            using (var con = new FbConnection("database=SECRET.FB;user=SYSDBA;password=masterkey;DataSource=sereverip;Port=3050"))
            {
                con.Open();
                using (var transaction = con.BeginTransaction())
                {
                    FbCommand result = new FbCommand("SELECT n.nrdokwew, n.datadok, k.nazwaskr FROM nagl n JOIN kontrah k on (n.id_kontrah = k.id_kontrah)");
                    result.ExecuteNonQuery();
                }
            }
        }
    }
}
4

1 回答 1

1

你正在执行一个查询,所以 usingExecuteNonQuery()是错误的方法(即执行更新、删除、DDL 等操作)。您需要使用ExecuteReader(),然后遍历行:

这个例子

using (var connection = new FbConnection("database=localhost:demo.fdb;user=sysdba;password=masterkey"))
{
  connection.Open();
  using (var transaction = connection.BeginTransaction())
  {
      using (var command = new FbCommand("select * from demo", connection, transaction))
      {
          using (var reader = command.ExecuteReader())
          {
              while (reader.Read())
              {
                  var values = new object[reader.FieldCount];
                  reader.GetValues(values);
                  Console.WriteLine(string.Join("|", values));
              }
          }
      }
  }
}
于 2021-10-13T07:10:41.507 回答