OriginalGriff
Вам действительно нужно быть более ясным, когда вы описываете проблему - копирование и вставка сообщения об ошибке-это лучший способ, "получить" ошибку" ничего " не очень помогает, особенно когда вы не говорите нам, где вы ее получаете или когда.
Но я предположу, что ошибка была "нулевым ссылочным исключением", поскольку вы говорите о нулевых значениях и базах данных.
На первый взгляд, то же самое Value
от .Rows(ROW).Cells(C_BARKOD)
возвращает нулевое значение ("Nothing
"в VB), поэтому призыв к ToString
правильно ли выбрасывать исключение, потому что вы пытаетесь вызвать метод - Tostring
- на несуществующем экземпляре объекта - null
.
Если да, то проверьте его, прежде чем пытаться что-либо вызвать!
Мы не можем проверить вас - мы не можем запустить ваш код, и у нас нет никаких ваших данных - так что это будет зависеть от вас.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Если вы не знаете, как его использовать, то быстрый Google для "Visual Studio debugger" должен дать вам необходимую информацию.
Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.
Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!
Member 14588284
https://yadi.sk/i/_yV7a1UNSBnDwg
сообщение об ошибке
мои все коды такие.
Вскоре somtimes мои ячейки datagridview могут быть равны нулю
Dim STNNAME = "SNO,CARKOD,TARIH,BELGETIP,BELGENO,BA,ACIKLAMA,MUH_ACIKLAMA,STKKOD,TBRM,MIKTAR,BARKOD,USTBRM,MIKTAR2,BRMFIYAT,TUTAR,KDV,KDVTUTAR,ISK,ISKTUTAR,NETTUTAR,KDVDAHIL,KAYITNO,STOKLU,ISLTARIH,GIDKALEM,GIDYER,BIRIM,MUHKOD" Dim STR1 = "INSERT INTO CARTH002(" & STNNAME & ") VALUES(@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) " Dim GUN As DateTime ' MsgBox(.Cells(0).Value) With FAT_TABLO For ROW = 0 To .Rows.Count - 1 If IsDBNull(.Rows(ROW).Cells(1).Value) = False Then If .Rows(ROW).Cells(1).Value.ToString <> "" Then ' SNO,CARKOD,TARIH,BELGETIP,BELGENO,BA,ACIKLAMA,MUH_ACIKLAMA,STKKOD, ' TBRM,MIKTAR,BARKOD,USTBRM,MIKTAR2,BRMFIYAT,TUTAR,KDV,KDVTUTAR,ISK,ISKTUTAR, ' NETTUTAR, KDVDAHIL, KAYITNO, STOKLU, ISLTARIH, GIDKALEM, GIDYER Dim D_ACIKLAMA = .Rows(ROW).Cells(C_ACIKLAMA).Value If D_ACIKLAMA = "" Then D_ACIKLAMA = DBNull.Value.ToString Dim D_STKKOD As String = .Rows(ROW).Cells(C_STKKOD).Value.ToString If D_STKKOD = "" Then D_STKKOD = DBNull.Value.ToString Dim D_TBRM As String = .Rows(ROW).Cells(C_TBRM).Value If D_TBRM = "" Then D_TBRM = DBNull.Value.ToString Dim D_BARKOD As String = .Rows(ROW).Cells(C_BARKOD).Value.ToString If D_BARKOD = "" Then D_BARKOD = DBNull.Value.ToString Dim D_USTBRM As String = .Rows(ROW).Cells(C_USTBRM).Value.ToString If D_USTBRM = "" Then D_USTBRM = DBNull.Value.ToString Dim D_MIKTAR2 As String = .Rows(ROW).Cells(C_MIKTAR2).Value.ToString If D_MIKTAR2 = "" Then D_MIKTAR2 = 0 Dim D_GIDKALEM As String = .Rows(ROW).Cells(C_GIDKALEM).Value.ToString If D_GIDKALEM = "" Then D_GIDKALEM = DBNull.Value.ToString Dim D_GIDYER As String = .Rows(ROW).Cells(C_GIDYER).Value.ToString If D_GIDYER = "" Then D_GIDYER = DBNull.Value.ToString Dim D_MUHKOD = .Rows(ROW).Cells(C_MUHKOD).Value If D_MUHKOD = "" Then D_MUHKOD = DBNull.Value ' MsgBox(.Rows(ROW).Cells(C_TARIH).Value) GUN = .Rows(ROW).Cells(C_TARIH).Value Dim Comm As New OleDbCommand(STR1, cn) Comm.Parameters.AddWithValue("@1", ROW + 1) Comm.Parameters.AddWithValue("@2", CARKOD.Text) Comm.Parameters.AddWithValue("@3", GUN) Comm.Parameters.AddWithValue("@4", MODUL.Text) Comm.Parameters.AddWithValue("@5", BELGENO.Text) Comm.Parameters.AddWithValue("@6", BA.Text) Comm.Parameters.AddWithValue("@7", D_ACIKLAMA) Comm.Parameters.AddWithValue("@8", "") Comm.Parameters.AddWithValue("@9", D_STKKOD) If D_TBRM <> "" Then Comm.Parameters.AddWithValue("@10", D_TBRM) End If Comm.Parameters.AddWithValue("@11", .Rows(ROW).Cells(C_MIKTAR).Value * 1) Comm.Parameters.AddWithValue("@12", D_BARKOD) Comm.Parameters.AddWithValue("@13", D_USTBRM) Comm.Parameters.AddWithValue("@14", D_MIKTAR2) Comm.Parameters.AddWithValue("@15", .Rows(ROW).Cells(C_BRMFIYAT).Value * 1)