powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Параметризованный запрос
6 сообщений из 6, страница 1 из 1
Параметризованный запрос
    #38209706
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Параметризованный запрос НЕ ВЫПОЛНЯЕТСЯ
Среда Visual Basic STUDIO’2010 Professional
Не совпадает число значений запроса и число результирующих полей.
Код: vbnet
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.
Public Con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " +
            " Data Source=E:\CD_MY_new\DATA\My_Pension.mdb") 
	Public DT As New Data.DataTable 
Dim sqlCommand As New OleDbCommand("", Con)
        sqlCommand.Parameters.Clear()

        sqlCommand.Parameters.Add("@PensNum", SqlDbType.NVarChar, 10)
        sqlCommand.Parameters.Add("@LastName", SqlDbType.NVarChar, 20)
        sqlCommand.Parameters.Add("@FirstName", SqlDbType.NVarChar, 15)
        sqlCommand.Parameters.Add("@patronymic", SqlDbType.NVarChar, 25)
        ' а заодно и
    sqlCommand.CommandText = "INSERT INTO [Pensioner] VALUES(@PensNum, @LastName," &
                "@FirstName, @patronymic)"
       
        For Each row As DataRow In DT.Rows
            Dim sPensNum As String = row("NumPensCertificate").ToString()
            Dim sLastName As String = row("LastName").ToString()
            Dim sFirstName As String = row("FirstName").ToString()
            Dim sPatronymic As String = row("patronymic").ToString()

            sqlCommand.Parameters("@PensNum").Value = sPensNum
            sqlCommand.Parameters("@LastName").Value = sLastName
            sqlCommand.Parameters("@FirstName").Value = sFirstName
            sqlCommand.Parameters("@patronymic").Value = sPatronymic

            DT.Clear() ' Очищаем таблицу DT 
            Con.Open()
            sqlCommand.CommandText = "INSERT INTO [Pensioner] VALUES(@PensNum, @LastName, @FirstName, @patronymic)"
            sqlCommand.ExecuteNonQuery() ' Не совпадает число значений запроса и число результирующих полей.
            DA = New OleDb.OleDbDataAdapter(sqlCommand) 'Через адаптер получаем результаты запроса
            Me.DataGridView1.DataSource = DT ' Привязываем Грид к источнику данных
            Con.Close() ' Закрываем соединение.
        Next


СПАСИБО!
...
Рейтинг: 0 / 0
Параметризованный запрос
    #38209739
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805,

Код: sql
1.
INSERT INTO [Pensioner] (field1, field2, field3, field4) VALUES(@param1, @param2, @param3, @param4)
...
Рейтинг: 0 / 0
Параметризованный запрос
    #38211646
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotik
СПАСИБО, с Вашей помощью сделан шаг впеоёд.

Кто может, помогите добавить строку в таблицу.
Я апробировал НЕУСПЕШНО следующие варианты:

Нолевой столбец "NumPensCertificate" является Primary Key ,
Тип данных – integer
Контрол DataGridView1 заполнен на форме.

Код: vbnet
1.
2.
3.
For Each row As DataRow In DT.Rows
            Dim sPensNum As String = row("NumPensCertificate").ToString()
            '- Dim sPensNum As String = row("NumPensCertificate").ToString("2000") 


[b] ' Индекс находился вне границ массива. [/b]
'- Dim sPensNum As String = row("NumPensCertificate").2000)

Код: vbnet
1.
'- Dim sPensNum As String = row("NumPensCertificate").Equals("2000")


' Несоответствие типов данных в выражении условия отбора.

Код: vbnet
1.
   '- Dim sPensNum As String = row("NumPensCertificate").Equals(2000)


' Несоответствие типов данных в выражении условия отбора.

Код: vbnet
1.
            '+- Dim sPensNum As String = row("2000").ToString() 


' Столбец "2000" не принадлежит таблице .
СПАСИБО!
...
Рейтинг: 0 / 0
Параметризованный запрос
    #38211704
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805,

..должно быть что-то типа

Код: vbnet
1.
2.
For Each row As DataGridViewRow In DT.Rows
            Dim sPensNum As String = row.Cells("NumPensCertificate").Value.ToString()



... или Cells(0)
...
Рейтинг: 0 / 0
Параметризованный запрос
    #38217832
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikVova_1805,

..должно быть что-то типа

Код: vbnet
1.
2.
For Each row As DataGridViewRow In DT.Rows
            Dim sPensNum As String = row.Cells("NumPensCertificate").Value.ToString()




... или Cells(0)

нет такого 100% быть не должно , не нужно советовать гавнокода
...
Рейтинг: 0 / 0
Параметризованный запрос
    #38217834
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805carrotik
СПАСИБО, с Вашей помощью сделан шаг впеоёд.

Кто может, помогите добавить строку в таблицу.
Я апробировал НЕУСПЕШНО следующие варианты:

Нолевой столбец "NumPensCertificate" является Primary Key ,
Тип данных – integer
Контрол DataGridView1 заполнен на форме.

Код: vbnet
1.
2.
3.
For Each row As DataRow In DT.Rows
            Dim sPensNum As String = row("NumPensCertificate").ToString()
            '- Dim sPensNum As String = row("NumPensCertificate").ToString("2000") 



[b] ' Индекс находился вне границ массива. [/b]
'- Dim sPensNum As String = row("NumPensCertificate").2000)

Код: vbnet
1.
'- Dim sPensNum As String = row("NumPensCertificate").Equals("2000")



' Несоответствие типов данных в выражении условия отбора.

Код: vbnet
1.
   '- Dim sPensNum As String = row("NumPensCertificate").Equals(2000)



' Несоответствие типов данных в выражении условия отбора.

Код: vbnet
1.
            '+- Dim sPensNum As String = row("2000").ToString() 



' Столбец "2000" не принадлежит таблице .
СПАСИБО!

смотрим методы DataTable : NewRow и Аdd

более правильный способ: BindingSource.AddNew
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Параметризованный запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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