2016-01-28 6 views
1

Разработка программного обеспечения базы данных с использованием vb.net, но программа не может сохранить базу данных.vb.net:Program не может сохранить базу данных

If Microsoft.VisualBasic.Right(Application.StartupPath, 1) = "\" Then 
    sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\database2.accdb" 
Else 
    sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\database2.accdb" 
End If 

conn = New OleDbConnection(sConnString) 
conn.Open() 
cmd.Connection = conn 
cmd.CommandType = CommandType.Text 
cmd.CommandText = "INSERT INTO PersonalData (Title, Full Name,Department,Unit,Phone No,Email,Gender,Marital Status,Birthday,Spouse Birthday,Wedding Anniversary,Educational Qualification,No of Kids,Work Experience) VALUES (@Title, @Full Name,@Department,@unit,@Phone No,@Email,@Gender,@Marital Status,@Birthday,@Spouse Birthday,@Wedding Anniversary,@Educational Qualification,@No of Kids,@Work Experience)" 
cmd.Parameters.Add("@Title", OleDbType.VarChar).Value = TextBox1.Text 
cmd.Parameters.Add("@Full Name", OleDbType.VarChar).Value = TextBox2.Text 
cmd.Parameters.Add("@Department", OleDbType.VarChar).Value = TextBox3.Text 
cmd.Parameters.Add("@unit", OleDbType.VarChar).Value = TextBox4.Text 
cmd.Parameters.Add("@Phone No", OleDbType.VarChar).Value = TextBox5.Text 
cmd.Parameters.Add("@Email", OleDbType.VarChar).Value = TextBox6.Text 
cmd.Parameters.Add("@Gender", OleDbType.VarChar).Value = TextBox7.Text 
cmd.Parameters.Add("@Marital Status", OleDbType.VarChar).Value = TextBox8.Text 
cmd.Parameters.Add("@Birthday", OleDbType.VarChar).Value = TextBox9.Text 
cmd.Parameters.Add("@Spouse Birthday", OleDbType.VarChar).Value = TextBox10.Text 
cmd.Parameters.Add("@Wedding Anniversary", OleDbType.VarChar).Value = TextBox11.Text 
cmd.Parameters.Add("@Educational Qualification", OleDbType.VarChar).Value = TextBox12.Text 
cmd.Parameters.Add("@No of Kids", OleDbType.VarChar).Value = TextBox13.Text 
cmd.Parameters.Add("@Work Experience", OleDbType.VarChar).Value = TextBox14.Text 
cmd.ExecuteNonQuery() 
MsgBox("Data Uploaded Successfully.", , " ") 

Он показывает точку ошибки Синтаксис cmd.ExecuteNonQuery но тот же код работает на другом программном обеспечении.

+1

Имена объектов скобки, содержащие пробелы. Например, используйте '[Полное имя]' вместо 'Полное имя' – HansUp

+0

Я не думаю, что поставщик OLEDB поддерживает именованные параметры в этом контексте. В SQL CommandText попробуйте изменить '@xxxx' на '?' для каждого параметра, чтобы узнать, помогает ли это. – Fink

+1

* «тот же код работает с другим программным обеспечением» * - Нет, это не так. Это невозможно. –

ответ

0

Вы должны сообщить об ошибке, чтобы понять, что происходит во время выполнения запроса, однако, глядя на ваш код, если не дать никаких ошибок при подключении, МАЙБЕ ошибка внутри переменных.

я пример, если у вас есть строка, где присутствует специальный символ, как «вам нужно заменить его„“

Пример:

MyString = mystring.Replace (» «», «» '')

Idk, если вы можете помочь, без сообщения об ошибке, это тяжелая помощь.