sudeshna from bangkok Ответов: 4

код для отображения записи базы данных в соответствии с выбором ComboBox в текстовом поле в vb 2008


У меня есть SQL сервер 2005 .есть у меня 1 таблицу данных, имя которой сльно,название,Тип,формы, поля столбцов
я хочу, чтобы отобразить записи наименование,тип,форма, в текстовое поле на выбор списка сльно

Private Sub ComboBox1_SelectedIndexChanged(byval sender As Object, ByVal e As System.EventArgs) Обрабатывает ComboBox1. SelectedIndexChanged

'Dim strcon As String = ("источник данных=.\INSTANCE;начальный каталог=запись;пользователь=sa;пароль=gariahat")
Dim cn As New SqlConnection ("источник данных=.\INSTANCE;начальный каталог=запись;пользователь=sa;пароль=gariahat")
'Dim da как новый SqlDataAdapter
Dim cmd как новая SqlCommand
Dim ds как новый набор данных
Дим ДТ в качестве объекта DataTable


- Попробуй

УМК.Соединение = cn
спицы.Открыть()

Dim da As New SqlDataAdapter ("select * from data", cn)
dt = новый DataTable

ds = новый набор данных
да.Заполнить(ДС, "сведения")

Для меня как integer = 0 в DS.Таблицы ("данные"). строки.Количество-1
Если Поле Combobox1.Для selecteditem = ДС.Столы("сведения").Ряды(я).Пункт ("lot_no").Метод toString() Затем
Textbox3 и.Текст = ДС.Столы("сведения").Строк(я + 1).Элемент("тип").Метод toString()
TextBox4.Текст = ДС.Столы("сведения").Строк(я + 2).Пункт("форма").Метод toString()
TextBox5.Текст = ДС.Столы("сведения").Строк(я + 3).Пункт("размер").Метод toString()
TextBox6.Текст = ДС.Столы("сведения").Строк(я + 4).Пункт("место").Метод toString()
TextBox7.Текст = ДС.Столы("сведения").Строк(я + 5).Пункт("вес").Метод toString()



Конец, Если

Следующий

это выше код, БТ показывает ошибки в оператор цикла, а значение ссылка null

4 Ответов

Рейтинг:
35

thanh_bkhn

Я видел, как вы обращались к разным строкам в каждом операторе настройки. К строке можно получить доступ по строкам (i), как показано ниже

TextBox3.Text = ds.Tables("data").Rows(i).Item("type").ToString()
TextBox4.Text = ds.Tables("data").Rows(i).Item("shape").ToString()
TextBox5.Text = ds.Tables("data").Rows(i).Item("size").ToString()
TextBox6.Text = ds.Tables("data").Rows(i).Item("place").ToString()
TextBox7.Text = ds.Tables("data").Rows(i).Item("weight").ToString()


sudeshna from bangkok

Большое спасибо,
теперь он работает.

У меня есть еще один запрос, что в той же форме у меня есть 2 других поля Имя и дата

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

раньше моим именем таблицы были данные, из которых я извлекал данные и хранил их в текстовом поле на основе выбора поля со списком.

теперь в той же форме я хочу, чтобы две другие записи были добавлены в textboxs, который является столбцом и датой и будет обновляться в сортировке таблиц базы данных.

какой код я напишу?

пожалуйста помочь.

заранее спасибо
судешна

sudeshna from bangkok

это запрос, который я написал bt, показывающий ошибку, что lot_no не может быть null

Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок
Dim cn As New SqlConnection ("источник данных=.\INSTANCE;начальный каталог=запись;пользователь=sa;пароль=gariahat")
Dim da как новый SqlDataAdapter
Dim cmd как новая SqlCommand
Dim ds как новый набор данных
'Дим ДР в качестве объекта sqldatareader
УМК.Соединение = cn
спицы.Открыть()
УМК.Свойства commandtext = "вставить в сортировки(по имени,issue_dt) значения (' " &амп; поле textbox2.Текст &ампер; " ','" &амп; TextBox8.Текст &ампер; " ')"
УМК.Метод executenonquery()
MsgBox ("данные успешно добавлены", MsgBoxStyle.Информация)
Меня.SortTableAdapter.Вставка(Элемент Combobox1.Текст, TextBox6.Текст)
Меня.SortTableAdapter.Заполнить(Мне.RecordDataSet.вроде)

thanh_bkhn

Если вы хотите, чтобы новые значения были обновлены в базе данных, вы должны использовать команду Update.
Попробовать это:
УМК.Свойства commandtext = "обновление вроде набора" и усилитель;
"тип = '" &амп; textbox3 и.Текст &ампер; "', " &амп;
(форма, размер, место, вес аналогичны типу)
"наименование = '" &амп; поле textbox2.Текст &ампер; "', " &амп;
"issue_dt = '" &амп; TextBox8.Текст &ампер; "'" &амп;
"Где lot_no = '" &ампер; элемент combobox1.Элемент &ампер; "'"

sudeshna from bangkok

после обновления набора сортировки как написать синтаксис? я ничего не понимал. цитатная часть
Не могли бы вы написать еще раз.

спасибо

thanh_bkhn

Разве вы не понимаете синтаксис обновления? Так что вы могли бы взглянуть на http://msdn.microsoft.com/en-us/library/8hwekas8(v=против 80). aspx
Важно иметь в виду, что команда update требует предложения Where, в вашем случае lot_no-это ранее выбранное значение combobox, в противном случае вы обновите всю базу данных.

sudeshna from bangkok

я понял команду обновления, но часть пунктуации, одиночные qquotes и т. д., которые вы разместили, я не могу понять
"type = '" & TextBox3. Text &"', " & (форма, размер, место, вес аналогичны типу)
и эта часть тоже. в скобку что я поставлю?

thanh_bkhn

(форма, размер, место, вес аналогичны типу) - > Я имею в виду, что эти элементы должны быть закодированы аналогично элементу" тип", например
"формы = '" &амп; TextBox4.Текст &ампер; "', " &амп;
"размер = '" &амп; TextBox5.Текст &ампер; "', " &амп;
и так далее

sudeshna from bangkok

я написал код
Dim cn As New SqlConnection ("источник данных=.\INSTANCE;начальный каталог=запись;пользователь=sa;пароль=gariahat")
Dim da как новый SqlDataAdapter
Dim cmd как новая SqlCommand
Dim ds как новый набор данных
'Дим ДР в качестве объекта sqldatareader
УМК.Соединение = cn
спицы.Открыть()
УМК.CommandText = cmd.Свойства commandtext = "обновление вроде набора" &ампер; "тип = '" &амп; textbox3 и.Текст &ампер; "', " &ампер; "формы='" &амп; TextBox4.Текст &ампер; " '," &ампер; "размер='" &амп; TextBox5.Текст &ампер; " '," &ампер; "место,='" &амп; TextBox6.Текст &ампер; "' ," &ампер; "вес='" &амп; TextBox7.Текст &ампер; " '," &ампер; "название = '" &амп; поле textbox2.Текст &ампер; "', " &ампер; "issue_dt = '" &амп; TextBox8.Текст &ампер; "'" &ампер; "где lot_no = '" &ампер; элемент combobox1.Элемент &ампер; "'"
УМК.Метод executenonquery()
MsgBox("данные успешно обновлены", MsgBoxStyle.Информация)
Меня.SortTableAdapter.Вставка(Элемент Combobox1.Текст И Textbox2.Текст, Textbox3 И.Текст, TextBox4.Текст, TextBox5.Текст, TextBox6.Текст, TextBox7.Текст, TextBox8.Текст)
Меня.SortTableAdapter.Заполнить(Мне.RecordDataSet.вроде)

но показывая ошибку в том, что не удалось найти хранимую процедуру "False".

sudeshna from bangkok

извините, что я написал cmd.command текст дважды по ошибке, так что показывал ошибку.
но теперь msgbox показывает, что данные успешно обновлены, но его обновление nt в сортировке базы данных показывает ошибку в следующей строке
Меня.SortTableAdapter.Вставка(Элемент Combobox1.Текст И Textbox2.Текст, Textbox3 И.Текст, TextBox4.Текст, TextBox5.Текст, TextBox6.Текст, TextBox7.Текст, TextBox8.Текст)

ошибка, показывающая это

Оператор INSERT конфликтовал с ограничением внешнего ключа "FK_ds". Конфликт произошел в базе данных "52B102E3BD1B9575679C2B8ECC6F7436_UMENTS\VISUAL STUDIO 2008\PROJECTS\WINDOWSAPPLICATION1\WINDOWSAPPLICATION1\BIN\DEBUG\RECORD.MDF", таблица "dbo.data", столбец "lot_no". Заявление было прекращено.

thanh_bkhn

Когда вы столкнулись с ошибкой, весь SQL-оператор будет откат, включает в себя команду "обновить".
Таким образом, ваша ошибка заключается в операторе Insert. Вы должны проверить связь таблицы сортировки с таблицей, в которую вы вставляете.

sudeshna from bangkok

Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок
Dim cn As New SqlConnection ("источник данных=.\INSTANCE;начальный каталог=запись;пользователь=sa;пароль=gariahat")
Dim da как новый SqlDataAdapter
Dim cmd как новая SqlCommand
Dim ds как новый набор данных
'Дим ДР в качестве объекта sqldatareader
УМК.Соединение = cn
спицы.Открыть()
УМК.Свойства commandtext = "вставить в данные(lot_no,тип,форма,размер,место,Вес) значения (' " &амп; текстовое поле textbox1.Текст &ампер; " ',' " &амп; поле textbox2.Текст &ампер; " ',' " &амп; textbox3 и.Текст &ампер; " ',' " &амп; TextBox4.Текст &ампер; " ',' " &амп; TextBox5.Текст &ампер; " ',' " &амп; TextBox6.Текст &ампер; " ')"
УМК.Метод executenonquery()
MsgBox ("данные успешно добавлены", MsgBoxStyle.Информация)
генкатид()
Меня.DataTableAdapter.Вставка(Элемент Textbox1.Текст И Textbox2.Текст, Textbox3 И.Текст, TextBox4.Текст, TextBox5.Текст, TextBox6.Текст)
Меня.DataTableAdapter.Заполнить(Мне.RecordDataSet.сведения)
Меня.Текстовое поле textbox1.Текст = ""
Меня.Поле textbox2.Текст = ""
Меня.Textbox3 и.Текст = ""
Меня.TextBox4.Текст = ""
Меня.TextBox5.Текст = ""
Меня.TextBox6.Текст = ""

это команды Insert, что я написал в табличные данные, где lot_no является первичным ключом, а в таблице сортировки lot_no является внешним ключом

sudeshna from bangkok

я изначально вставляю значения в табличные данные, из которых извлекаю все значения и сохраняю в таблице сортировки с добавлением 2 новых кулонов.

sudeshna from bangkok

Сэр, пожалуйста, помогите мне. иначе я застряну.

я буду великодушен к тебе.
заранее спасибо
судешна

thanh_bkhn

В настоящее время каково ваше сообщение об ошибке?

sudeshna from bangkok

Оператор INSERT конфликтовал с ограничением внешнего ключа "FK_ds". Конфликт произошел в базе данных "52B102E3BD1B9575679C2B8ECC6F7436_UMENTS\VISUAL STUDIO 2008\PROJECTS\WINDOWSAPPLICATION1\WINDOWSAPPLICATION1\BIN\DEBUG\RECORD.MDF", таблица "dbo.data", столбец "lot_no". Заявление было прекращено.

это сообщение об ошибке

sudeshna from bangkok

я удалил связь внешнего ключа с табличными данными и сортировкой, но все еще показываю ошибку

thanh_bkhn

Да, проблема в ваших отношениях, но я не понимаю, почему это все еще ошибка после того, как вы ее удалили?

sudeshna from bangkok

я не знаю, сэр.

и еще одно, сэр, у меня есть еще две таблицы factory и facsort. эти две таблицы также я сделал так же, как данные и таблица сортировки. единственное, когда я создавал таблицу factory и facsort, я не создавал fk. поэтому, когда я обновляю таблицу facsort, принимая значения из заводской таблицы, никакой ошибки не появляется,но моя таблица facsort не обновляется в базе данных

где в качестве данных и таблицы сортировки отображается ошибка

sudeshna from bangkok

Пожалуйста, сэр, не могли бы вы помочь me.my проект застрял здесь. я не смогу продолжить работу, если эти данные не будут сохранены в таблице сортировки, а также в таблице facsort

thanh_bkhn

Когда ошибки нет, значит, есть вероятность, что вы забыли вызвать Commit

sudeshna from bangkok

куда я буду звонить? а сэр, в моей таблице facsort уже нет никаких данных, все поля пусты. так как же будет работать оператор обновления?

sudeshna from bangkok

вы можете дать мне код vb.net чтобы вставить данные в две разные таблицы, используйте транзакцию.
предположим, я использую оператор insert в 1 таблице,он автоматически будет вставлен во 2-ю таблицу также с тем же именем столбца и значениями

Рейтинг:
2

munnalingam

Потому что я+1, я+2, я+3 ... это проблема.

Просто уберите это +1, +2 +3 ... тогда это сработает.


sudeshna from bangkok

Большое спасибо,
теперь он работает.

У меня есть еще один запрос, что в той же форме у меня есть 2 других поля Имя и дата

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

раньше моим именем таблицы были данные, из которых я извлекал данные и хранил их в текстовом поле на основе выбора поля со списком.

теперь в той же форме я хочу, чтобы две другие записи были добавлены в textboxs, который является столбцом и датой и будет обновляться в сортировке таблиц базы данных.

какой код я напишу?

пожалуйста помочь.

заранее спасибо
судешна

sudeshna from bangkok

это запрос, который я написал, но показывает ошибку

Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок
Dim cn As New SqlConnection ("источник данных=.\INSTANCE;начальный каталог=запись;пользователь=sa;пароль=gariahat")
Dim da как новый SqlDataAdapter
Dim cmd как новая SqlCommand
Dim ds как новый набор данных
'Дим ДР в качестве объекта sqldatareader
УМК.Соединение = cn
спицы.Открыть()
УМК.Свойства commandtext = "вставить в сортировки(по имени,issue_dt) значения (' " &амп; поле textbox2.Текст &ампер; " ','" &амп; TextBox8.Текст &ампер; " ')"
УМК.Метод executenonquery()
MsgBox ("данные успешно добавлены", MsgBoxStyle.Информация)
Меня.SortTableAdapter.Вставка(Элемент Combobox1.Текст, TextBox6.Текст)
Меня.SortTableAdapter.Заполнить(Мне.RecordDataSet.вроде)

Рейтинг:
18

bhuvamehul

Попробуйте этот способ

Private Sub ComboBox1_SelectedIndexChanged(byval sender As Object, ByVal e As System.EventArgs) Обрабатывает ComboBox1. SelectedIndexChanged

'Dim strcon As String = ("источник данных=.\INSTANCE;начальный каталог=запись;пользователь=sa;пароль=gariahat")
Dim cn As New SqlConnection ("источник данных=.\INSTANCE;начальный каталог=запись;пользователь=sa;пароль=gariahat")
'Dim da как новый SqlDataAdapter
Dim cmd как новая SqlCommand
Dim ds как новый набор данных
Дим ДТ в качестве объекта DataTable


- Попробуй

УМК.Подключение = СN
спицы.Открыть()

Dim da As New SqlDataAdapter ("select * from data where lot_no=" & cint(ComboBox1. SelectedItem), cn)
dt = новый DataTable

ds = новый набор данных
да.Заполнить(ДС, "сведения")



Textbox3 и.Текст = ДС.Столы("сведения").Строк(0).Элемент("тип").Метод toString()
TextBox4.Текст = ДС.Столы("сведения").Строк(0).Пункт("форма").Метод toString()
TextBox5.Текст = ДС.Столы("сведения").Строк(0).Пункт("размер").Метод toString()
TextBox6.Текст = ДС.Столы("сведения").Строк(0).Пункт("место").Метод toString()
TextBox7.Текст = ДС.Столы("сведения").Строк(0).Пункт("вес").Метод toString()


sudeshna from bangkok

у меня есть еще одно сомнение. Вы не могли бы мне помочь?

bhuvamehul

Конечно, помогу тебе, если смогу. Скажите мне

Рейтинг:
10

munnalingam

Потому что я+1, я+2, я+3 ... это проблема. Вы ссылаетесь на строку, которая недоступна.

Просто уберите это +1, +2 +3 ... тогда это сработает.


sudeshna from bangkok

У меня есть еще один запрос, что в той же форме у меня есть 2 других поля name и date после того, как текстовое поле будет заполнено при выборе поля со списком, я вручную введу имя и дату в два других поля tet, и эти данные при нажатии кнопки submit будут сохранены в другой таблице name sort. раньше моим именем таблицы были данные, из которых я извлекал данные и хранил их в текстовом поле на основе выбора поля со списком. теперь в той же форме я хочу, чтобы две другие записи были добавлены в textboxs, который является столбцом и датой и будет обновляться в сортировке таблиц базы данных. какой код я напишу? пожалуйста помочь. заранее спасибо судешна

sudeshna from bangkok

я написал код
Dim cn As New SqlConnection ("Data Source =. \ INSTANCE; начальный каталог = запись; user = sa; password = gariahat") Dim da As New SqlDataAdapter Dim cmd As New SqlCommand Dim ds As New DataSet 'Dim dr As SqlDataReader cmd. Connection = cn cn.Open () cmd.CommandText = cmd.CommandText = "Обновить набор сортировки" & "type = '" & TextBox3.Text & "'," & "shape = '" & TextBox4.Text & "', "&" size = '"& TextBox5.Text &"', "&" place = '"& TextBox6.Text &"', "&" weight = '"& TextBox7.Text &"', "&" name = '"& TextBox2.Text &"', "&" issue_dt = '"& TextBox8.Text &"' "&" Где lot_no = '"& ComboBox1.SelectedItem &"' "cmd.ExecuteNonQuery () MsgBox (" Данные успешно обновлено ", MsgBoxStyle.Information) Me.SortTableAdapter.Insert (ComboBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, TextBox7.Text, TextBox8.FillAdapter.Sext) Meap (Me.RecordDataSet.sort), но показывает ошибку в том, что не удалось найти хранимую процедуру «False».