2015-03-10 1 views
0

Функция добавления и вставки моего приложения не работает. Я понятия не имею, что я сделал не так. Вы можете найти какую-либо ошибку? Пожалуйста помоги!Как вставить данные в базу данных с помощью ASP.Net vb .mdf

Вот мой код:

Protected Sub btnConfirm_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConfirm.Click 



    Dim connString As String 
    connString = "Data Source=.\SQLEXPRESS;AttachDbFilename=E:\\boomwebsite\App_Data\playaazaleaDatabase.mdf;Integrated Security=True;User Instance=True" 
    Dim cmd As New SqlCommand 

    Dim myConnection As New Data.SqlClient.SqlConnection(connString) 
    Try 
     myConnection.Open() 

     cmd.CommandText = "INSERT INTO reservations(fname, lname, contactnumber, amenities, date, price, status, statuscount) VALUES (@FNAME, @LNAME, @CONTACT, @AMENITIES, @DATE, @PRICE, @STATUS, @STATUSCOUNT)" 
     cmd.Connection = myConnection 
     cmd.Parameters.AddWithValue("@FNAME", txtboxFname.Text) 
     cmd.Parameters.AddWithValue("@LNAME", txtboxLname.Text) 
     cmd.Parameters.AddWithValue("@CONTACT", txtboxContact.Text) 
     cmd.Parameters.AddWithValue("@AMENITIES", DropDownListAmenities.SelectedItem.Value) 
     cmd.Parameters.AddWithValue("@DATE", txtboxDate.Text) 
     cmd.Parameters.AddWithValue("@PRICE", txtboxPrice.Text) 
     cmd.Parameters.AddWithValue("@STATUS", txtboxStatus.text) 
     cmd.Parameters.AddWithValue("@STATUS2", txtboxStatus2.text) 

     cmd.ExecuteNonQuery() 
     Response.Redirect("bookedreservations.aspx") 

    Catch ex As Exception 
     Label1.text = "Error Inserting Data ..." 
    Finally 
     myConnection.Close() 
    End Try 
End Sub 
+2

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

+0

Нету, он просто идет прямо к Выгода ех как исключение Label1.Text = «Ошибка вставки данных ...» Наконец myConnection.Close() End Try –

+0

Вы уверены, что он не получает вставлен в базу данных? Response.Redirect всегда будет генерировать исключение ThreadAbortException, которое всегда сделает метку «Ошибка ввода данных». – Stryner

ответ

0

Ну, имеющий обработчик исключений, который выписывает .. «Ошибка Вставка данных» ... не говоря вам, что это ошибка, кажется, немного бесполезный, в наименее писать

Catch ex As Exception 
    Label1.text = "Error Inserting Data ... " & ex.Message 
... 

, который покажет, что не так с вашим запросом.

Однако в этом запросе есть большой подозреваемый. Слово Date является зарезервированным ключевым словом почти в любой системе баз данных. Если вы хотите использовать его затем заключить в квадратных скобках

cmd.CommandText = "INSERT INTO reservations(fname, lname, " & _ 
    "contactnumber, amenities, [date], price, status, statuscount) " & _ 
    "VALUES (@FNAME, @LNAME, @CONTACT, @AMENITIES, @DATE, " & _ 
    "@PRICE, @STATUS, @STATUSCOUNT)" 

Другой возможной проблемой является метод AddWithValue. Этот метод, в то время как удобный, имеет темную сторону, которую вы должны полностью знать при ее использовании. Он создает параметр с типом данных, который предполагается смотреть на тип данных передаваемого вами значения. В вашем случае, например, поле price должно быть полем nvarchar, поскольку вы передаете свойство txtboxPrice.Text, которое является строкой.
Лучше использовать

cmd.Parameters.Add("@PRICE", SqlDbType.Decimal).Value = Convert.ToDecimal(txtboxPrice.Text) 

и так далее для других параметров.

+0

. так что теперь я буду делать дальше? Ошибка при вставке данных ... Ошибка подключения к базе данных с автоименованием для файла E: \\ boomwebsite \ App_Data \ playaazaleaDatabase.mdf. База данных с тем же именем существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC. –

+0

Попробуйте удалить экземпляр пользователя из строки подключения – Steve

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