连接字符串数据源错误

时间:2016-01-06 17:36:44

标签: asp.net sql-server vb.net

在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; ")

但是,我收到以下错误:

  

没有可用的错误消息,结果代码:DB_E_ERRORSOCCURRED(0x80040E21)。
  描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息   异常详细信息:System.Data.OleDb.OleDbException:没有可用的错误消息,结果代码:DB_E_ERRORSOCCURRED(0x80040E21)。

1 个答案:

答案 0 :(得分:1)

看起来您正在使用OleDbConnection for SQL Server。

如果您使用SQL Server,则需要SqlConnection。例如,

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

仅供参考: 使用参数大小查询来避免SQL注入攻击。