2014-01-07 3 views
1

Я попытался найти заголовок, который близок к вопросу, который у меня есть, насколько это возможно.Вставьте запись клиента, затем вставьте несколько связанных записей, не работает

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

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

Итак, наш дизайн разбит на две части.

В верхней части страницы пользователь должен предоставить три части личной информации (фамилия, адрес электронной почты, номер телефона).

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

Другими словами, пользователь вводит первый рецепт пополнения, и если есть другой рецепт, который пользователь хотел бы пополнить, пользователь нажимает кнопку 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 
+0

Какое исключение он выбрасывает? В блоке catch назначьте значение исключения для lblResult.Text, чтобы вы знали, какое исключение оно выбрасывает. –

+0

У меня это получилось только сейчас. Это указывало на неправильный стол. Спасибо за попытку hel @AdarshShah – Kenny

ответ

0

Код был направлен в неверном таблице.

У меня есть работа после исправления этой проблемы.

Employee_Roster - неправильная таблица.

Смежные вопросы