2016-01-06 3 views
0

исходная строка данных в файле aspx.vbошибка связи

Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 

     Dim con As New OleDbConnection("Provider= SQLOLEDB.1;Integrated Security=true; data source=myserver; ") 

     Dim cmd As New OleDbCommand 

     cmd.Connection = con 
     cmd.CommandText = "Insert into demo.dbo.masters1 values ('" & TextBox1.Text & " ," & TextBox4.Text & " , " & TextBox3.Text & " ')" 
     con.Open() 
     If (cmd.ExecuteNonQuery() > 0) Then 
      Label1.BorderColor = Drawing.Color.Aquamarine 
     Else 
      Label1.BorderColor = Drawing.Color.Black 
     End If 

     con.Close() 

End Sub 

Я использую проверку подлинности Windows.

Сервер запущен.

Я также попытался:

Dim con As New OleDbConnection("Provider= SQLOLEDB.1;Integrated Security=true; data source=C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\database_name.mdf; ") 

Однако, я получаю следующее сообщение об ошибке:

No error message available, result code: DB_E_ERRORSOCCURRED(0x80040E21).
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.OleDb.OleDbException: No error message available, result code: DB_E_ERRORSOCCURRED(0x80040E21).

+0

какая строка вызывает ошибку? – techspider

+0

Сколько столбцов имеет таблица мастеров1? Вы хотите вставить одну конкатенированную строку в один столбец или три строки на три столбца? –

+0

Вам отчаянно нужно параметризовать ваши запросы. То, как это кодируется, представляет собой пример учебника для SQL-инъекции. –

ответ

1

Посмотрите, как вы используете OleDbConnection для SQL Server.

Вы хотите использовать SqlConnection, если используете SQL Server. Например,

using(var con = new SqlConnection(
    "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;")) 
{ 
    var query = "insert statement ..."; 
    using(var cmd = new SqlCommand(query, con)){ 
     cmd.CommandType = CommandType.Text; 
     con.Open(); 
     .... 
    } 
} 

Вы можете посмотреть на формат строки подключения here тоже.

FYI: Используйте запрос параметризации, чтобы избежать SQL Injection атаки.

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