Kishore_Patel Ответов: 1

- У таблицы нет первичного ключа.


- У таблицы нет первичного ключа.

у меня есть 2 стола
1. prtmst (откуда мне нужно читать данные) (oldedb con)
2. accmst (туда, куда мне нужно записать данные) (sql con)
accmst создается с помощью первичного ключа

мне нужно прочитать данные из "prtmst" и выполнить поиск в "accmst" и вставить, если они не существуют или идентификатор обновления уже существует.

Примечание : "prtmst" и "accmst" col name не совпадают

пожалуйста, помогите мне, потому что у таблицы нет первичного ключа.
мне это надоело

Что я уже пробовал:

private void Oacc_repl(SqlConnection NConn, OleDbConnection OConn)
        {
            OConn.Open();
            OleDbCommand ocmd = new OleDbCommand("select * from prtmst ", OConn);
            OleDbDataReader ordr = ocmd.ExecuteReader();

            NConn.Open();
            DataTable acctbl = new DataTable("dbo.accmst");
            acctbl.PrimaryKey = new DataColumn[] { acctbl.Columns["acc_code"] };


            while (ordr.Read())
            {
                //string k = ordr["prt_code"].ToString();
                //DataRow foundRow = acctbl.Rows.Find(k);
                //if (foundRow != null)
                if (acctbl.Rows.Contains(ordr["prt_code"]))
                {
                   MessageBox.Show("Record Found ..... ");
                }
            } 
       }

1 Ответов

Рейтинг:
2

OriginalGriff

Прочтите сообщение об ошибке - оно не может быть намного яснее:

Table doesn't have a primary key.

Вы пытаетесь использовать таблицу, которая не имеет первичного ключа, как если бы это было так.
Самый простой способ исправить это-добавить столбец ID и установить его в качестве первичного ключа.


Kishore_Patel

столбец "acc_code" - это мой первичный ключ

нужно ли менять "acc_code" в "идентификатор" ?

Kishore_Patel

Я создал таблицу, как показано ниже :

строка saccmst = "CREATE TABLE[dbo].[accmst] " +
"(acc_code типа nchar(5), acc_name тип nvarchar(50), acc_type тип nvarchar(3), off_add1 тип nvarchar(150), off_add2 тип nvarchar(35), off_add3 тип nvarchar(35), off_phone тип nvarchar(35), " +
"off_email тип nvarchar(35), off_mobile тип nvarchar(15), fac_add1 тип nvarchar(150), fac_add2 тип nvarchar(35), fac_add3 тип nvarchar(35), fac_mobile тип nvarchar(15), fac_phone тип nvarchar(35), fac_email тип nvarchar(35)," +
"gst_no типа nchar(15), cst_no типа nchar(15), pan_no типа nchar(15), auth_per тип nvarchar(35), bspl типа nchar(1), bspl_type типа nchar(1), bspl_grp типа nchar(3), bspl_sgrp типа nchar(3), brk_code типа nchar(5)," +
"grp_code типа nchar(5), off_state тип nvarchar(15), ограничение kacode первичный ключ кластеризованного (acc_code), ianame некластеризованный индекс (acc_name), iacode некластеризованный индекс (acc_code))";