Я попытался найти заголовок, который близок к вопросу, который у меня есть, насколько это возможно.Вставьте запись клиента, затем вставьте несколько связанных записей, не работает
У нас есть фармацевтический магазин, и мы пытаемся дать нашим клиентам возможность пополнить свои рецептурные лекарства в Интернете.
Наша презумпция заключается в том, что у клиента может быть несколько рецептов, которые они хотели бы пополнить в одно и то же время.
Итак, наш дизайн разбит на две части.
В верхней части страницы пользователь должен предоставить три части личной информации (фамилия, адрес электронной почты, номер телефона).
Затем в нижней части страницы находится текстовое поле, которое динамически генерируется.
Другими словами, пользователь вводит первый рецепт пополнения, и если есть другой рецепт, который пользователь хотел бы пополнить, пользователь нажимает кнопку Add Another Refill, чтобы предоставить другой номер рецепта.
Пользователь может предоставить максимальный максимум 6 рецептурных заправок.
Это прекрасно работает.
Проблема, которую мы имеем, заключается в добавлении этой информации в базу данных.
Приведенный ниже код добавляет личную информацию клиента в таблицу Customer, но добавление информации о назначении в таблицу рецептов не сохраняет информацию.
Любые идеи, что я делаю неправильно? Заранее спасибо
Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim s As String
Dim sql As String
Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("App_Data\GCP.mdb")
Try
SetRowData()
Dim table As DataTable = TryCast(ViewState("CurrentTable"), DataTable)
If table IsNot Nothing Then
s = "INSERT INTO Customer(Lastname, Email_Address, Phone) Values (?, ?, ?)"
sql = "Select Max(custId) From Customer"
'Response.Write(s)
'Response.End()
Dim con As New OleDbConnection(connStr)
Dim cmd1 As New OleDbCommand(s, con)
cmd1.Parameters.AddWithValue("", txtlName.Text)
cmd1.Parameters.AddWithValue("", txtemail.Text)
cmd1.Parameters.AddWithValue("", txtphone.Text)
con.Open()
cmd1.ExecuteNonQuery()
cmd1.CommandText = sql
ID = cmd1.ExecuteScalar()
For Each row As DataRow In table.Rows
Dim txRefill As String = TryCast(row.ItemArray(1), String)
If txRefill IsNot Nothing Then
Try
s = "INSERT INTO Employee_Roster(refillNumber, custId) VALUES "
s += "('" & txRefill & "', " & ID & ")"
'Response.Write(s)
'Response.End()
'Dim connStr As String = ConfigurationManager.ConnectionStrings("allstringconstrng").ConnectionString
Dim conn As New OleDbConnection(connStr)
Dim cmd As New OleDbCommand(s, conn)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
'Display some feedback to the user to let them know it was processed
lblResult.ForeColor = System.Drawing.Color.Green
lblResult.Text = "Record successfully saved!"
'Clear the form
txRefill = ""
Catch
'If the message failed at some point, let the user know
lblResult.ForeColor = System.Drawing.Color.Red
lblResult.Text = "Your record failed to save, please try again."
End Try
End If
Next
End If
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub
Какое исключение он выбрасывает? В блоке catch назначьте значение исключения для lblResult.Text, чтобы вы знали, какое исключение оно выбрасывает. –
У меня это получилось только сейчас. Это указывало на неправильный стол. Спасибо за попытку hel @AdarshShah – Kenny