powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Firebird .NET Provider + C#. Работа с данными
18 сообщений из 18, страница 1 из 1
Firebird .NET Provider + C#. Работа с данными
    #37469805
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FB 2.5
FB .NET Provider 2.1.5

Создал подключение
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
            var csb = new FbConnectionStringBuilder
            {
                Database = aDBPath,
                UserID = "sysdba",
                Password = "masterkey",
                ServerType = FbServerType.Default,
                Dialect = 3,
                Pooling = false
            };

            var connection = new FbConnection(csb.ToString());

Как мне дальше написать простой запрос, например такой:
Код: plaintext
1.
SELECT * FROM TABLE1 WHERE (NR= 1 )
и как работать с полученными данными?
Т.е. мне надо из той записи которая вернулась в результате запроса считать значение конкретных полей (COLUMN1, COLUMN2)
нашел вот что-то похожее на правду...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
                        // ...
                        var connection = new FbConnection(csb.ToString());

                        var dt = new DataTable();
                        var adb = new FbDataAdapter();
                        var cmd = new FbCommand("SELECT * FROM DBInfo WHERE (NR=1)", connection);
                        //cmd.ExecuteReader();
                        cmd.CommandType = CommandType.Text;
                        adb.SelectCommand = cmd;
                        adb.Fill(dt);
Как дальше получить значение поля COLUMN1 из этого dt (DataTable)?
Никогда раньше с этим не работал.
Подскажите.
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #37469964
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
var cmd=connection.CreateCommand();
cmd.CommandText="SELECT * FROM DBInfo WHERE (NR=1)";
var r=cmd.ExecuteReader();
while(r.Read())
{
  object val1=r["COLUMN1"];
}
r.Dispose();
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Firebird .NET Provider + C#. Работа с данными
    #38766012
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем использовал этот гайд http://www.vr-online.ru/content/c-rabotaem-s-firebird-25-iz-visual-studio-2010-3034
коннект отработал нормально, а вот селект не хочет.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
   if (fb.State == ConnectionState.Closed)
                fb.Open();

            FbTransaction fbt = fb.BeginTransaction(); //стартуем транзакцию; стартовать транзакцию можно только для открытой базы (т.е. мутод Open() уже был вызван ранее, иначе ошибка)
        
           string query = " SELECT   BRUTTO, FK_ORG FROM   PROTOKOL    ROWS 3;";
            logger.Trace(fb.State);
            FbCommand SelectSQL = new FbCommand(query, fb); //задаем запрос на выборку
            logger.Trace("1");

            SelectSQL.Transaction = fbt; //необходимо проинициализить транзакцию для объекта SelectSQL
  
            FbDataReader reader = SelectSQL.ExecuteReader(); //для запросов, которые возвращают результат в виде набора данных надо использоваться метод ExecuteReader() 


на последней строчке падает и пишет
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38766052
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
des1roer,

.. а там нужна точка с запятой в конце запроса?
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38766065
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
она ни на что не влияет
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38766360
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
des1roer
Код: c#
1.
2.
   if (fb.State == ConnectionState.Closed)
                fb.Open();




1. В мусорку, глобальный fb хранить не надо, надо так:
Код: c#
1.
2.
3.
4.
using (FbConnection fb = new FbConnection(connectionString_))
{
// и погнал отжигать
}



2. Для селекта транзакции не нужны

3. Какая версия сервера?
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38766394
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А
Скачай менее дохлого клиента
http://www.firebirdsql.org/en/additional-downloads/
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38767473
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы и рад. прога не моя. проапгейжу - упадет небось
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38767475
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris,

попробовал
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
         string query = " SELECT   BRUTTO, FK_ORG FROM   PROTOKOL    ROWS 3; ";
                using (FbConnection fb = new FbConnection(query))
                {

                    FbTransaction fbt = fb.BeginTransaction(); //стартуем транзакцию; стартовать транзакцию можно только для открытой базы (т.е. мутод Open() уже был вызван ранее, иначе ошибка)
                 
                    FbCommand SelectSQL = new FbCommand(query, fb); //задаем запрос на выборку         

                    SelectSQL.Transaction = fbt; //необходимо проинициализить транзакцию для объекта SelectSQL          
                    FbDataReader reader = SelectSQL.ExecuteReader(); //для запросов, которые возвращают результат в виде набора данных надо использоваться метод ExecuteReader()  
                    string select_result = ""; //в эту переменную будем складывать результат запроса Select
                

                    try
                    {
                        while (reader.Read()) //пока не прочли все данные выполняем...
                        {
                            select_result = select_result + reader.GetInt32(0).ToString() + ", " + reader.GetString(1) + "\n";
                            logger.Trace("5");
                        }
                    }
                    finally
                    {
                        //всегда необходимо вызывать метод Close(), когда чтение данных завершено
                        reader.Close();
                        logger.Trace("6");
                        fb.Close(); //закрываем соединение, т.к. оно нам больше не нужно
                        logger.Trace("7");
                    }
                    MessageBox.Show(select_result); //выводим результат запроса
                    logger.Trace(select_result);
                    SelectSQL.Dispose(); //в документации написано, что ОЧЕНЬ рекомендуется убивать объекты этого типа, если они больше не нужны
                }


получил
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38767480
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ну конечно, там не запрос нужен, строка подключения. но вот незадача - опять ошибка 104
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    string connectionString = @"Server=PC0;User=SYSDBA;Password=FB;Database=C:\Vesi\Project\DATAVD_VGOK";

            DataTable dt = new DataTable();
            FbDataAdapter da = new FbDataAdapter("SELECT BRUTTO, FK_ORG FROM PROTOKOL ROWS 3;", connectionString);
             ds.Reset();
            da.Fill(dt);
            dt = ds.Tables[0];
            dataGridView1.DataSource = dt;


...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38767485
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин. ларчик просто открывался. все дело было в строке запроса,
в 2.5 это rows 3 а в 1.5 это first 3
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38767486
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин. ларчик просто открывался. все дело было в строке запроса,
в 2.5 это rows 3 а в 1.5 это first 3
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38768609
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
des1roerмлин. ларчик просто открывался. все дело было в строке запроса,
в 2.5 это rows 3 а в 1.5 это first 3

Я тебе одну тайну открою, только ты никому!
Если предварительно проверить запрос (например в IBExpert), то экономится масса времени и сил.
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38768616
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да прикол в том что у меня база была на компе 2.5 а на удаленной тачке 1.5. вот и получалось что у меня запрос проходил а у них нет
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38775886
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ. создал подключение все ок. но вот переделал винформ приложение в сервис и логер пишет такую ошибку Could not load file or assembly 'FirebirdSql.Data.FirebirdClient, Version=4.5.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38775964
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
des1roer,

я думаю надо срочно поднять еще пяток некро-тем, и вопрос решится
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38775982
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или десяток и пару новых создать вот тогда результат будет 146% не а если серьезно в чем трабла? на буржуйских форумах чет пишут про какой то веб.конфиг
...
Рейтинг: 0 / 0
Firebird .NET Provider + C#. Работа с данными
    #38776842
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Firebird .NET Provider + C#. Работа с данными
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]