Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Параметризованный запрос / 6 сообщений из 6, страница 1 из 1
02.04.2013, 17:28
    #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
02.04.2013, 17:40
    #38209739
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметризованный запрос
Vova_1805,

Код: sql
1.
INSERT INTO [Pensioner] (field1, field2, field3, field4) VALUES(@param1, @param2, @param3, @param4)
...
Рейтинг: 0 / 0
03.04.2013, 17:33
    #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
03.04.2013, 18:02
    #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
08.04.2013, 19:05
    #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
08.04.2013, 19:08
    #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
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Параметризованный запрос / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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