2015-02-19 3 views
-1

я попробовать этот простой код с подключением к OLEDB, но соединение не открытоDB соединение не открыто

Imports System.Data.OleDb 
Public Class WebForm2 
    Inherits System.Web.UI.Page 
    Protected Sub SubmitButton_Click(sender As Object, e As EventArgs) Handles SubmitButton.Click 

     Dim connetionString As String 
     Dim cnn As OleDbConnection 
     connetionString = "Provider=SQLOLEDB;Data Source=((localdb)\v11.0);Initial Catalog=test;User Id=MyUsername; Password=MyPassword;Integrated Security=SSPI;" 
     cnn = New OleDbConnection(connetionString) 
     Try 
      cnn.Open() 
      MsgBox("Connection Open ! ") 
      cnn.Close() 
     Catch ex As Exception 
      MsgBox("Can not open connection ! ") 
     End Try 

я также попробовать это строки соединения

 connetionString = "Provider=SQLOLEDB;Data Source=test;Integrated Security=SSPI;" 

же DB хорошо работает с SQL клиентом это соединение строки

Imports System.Data.SqlClient 

Public Class WebForm2 

    Inherits System.Web.UI.Page 
    Dim globalp As String 
    Dim globals As String 
    Private strConn As String = "Data Source=(localdb)\v11.0;Initial Catalog=test;Integrated Security=True" 

экстренный код не упоминается для простоты вопроса. любая вещь дополнительно требуется поэтому просьба указать в комментариях. еще одна проблема заключается в том, что некоторые сказали мне, что эта проблема возникает из-за проверки подлинности SQL Server Я пытаюсь изменить режим проверки подлинности в визуальной студии, встроенной в sql-сервер, но я не получаю всплывающее меню свойств или прямо внизу в разделе угла свойства, из обозревателя объектов,

Новая ошибка происходит в этом разделе кода `ИМПОРТНОЕ System.Data.OleDb

Открытый класс WebForm2

Inherits System.Web.UI.Page 
Dim globalp As String 
Dim globals As String 
'Dim strConn As String = "Provider=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=((localdb)\v11.0);Initial Catalog=test;Integrated Security=SSPI;" 
Dim strConn As String = "Provider=SQLNCLI11.1;Integrated Security=SSPI;Initial Catalog=Test;Data Source=(localdb)\v11.0;" 

Dim conn As OleDbConnection 
' Dim strConn As String = "Provider=SQLOLEDB; Data Source=(localdb)\v11.0; Initial Catalog=test; Integrated Security=SSPI" 
' Private strConn As String = " Provider=Microsoft.Jet.OLEDB.4.0; Data Source=(localdb)\v11.0;Initial Catalog=test; User Id=MyUsername; Password=MyPassword" 
' Private sqlCon As OleDbCommand 
'Private strConn As OleDbCommand 
'Provider=SQLOLEDB; 


Protected Sub SubmitButton_Click(sender As Object, e As EventArgs) Handles SubmitButton.Click 


    If Page.IsValid Then 

     ' cnn = New OleDbConnection(strConn) 
     ' cnn.Open() 
     ' MsgBox("Connection Open ! ") 
     ' cnn.Close() 





     'sqlComm.CommandText = "sp1_userinformation" 
     ' sqlComm.CommandType = CommandType.StoredProcedure 



     ' sqlComm.Parameters.AddWithValue("UserName", name.Text) 
     ' sqlComm.Parameters.AddWithValue("pass_word", fname.Text) 
     ' sqlComm.Parameters.AddWithValue("CNIC", (cnic.Text)) 
     ' sqlComm.Parameters.AddWithValue("PartialAddress", (limitedtextarea.Text)) 
     ' sqlComm.Parameters.AddWithValue("Email", (email.Text)) 

     ' sqlCon.Open() 
     'lcit.Text = sname 
     ' sqlComm.ExecuteNonQuery() 
     ' Dim sname As String = name.Text 
     Dim sfname As String = fname.Text 
     Dim scnic As String = cnic.Text 
     Dim slimit As String = limitedtextarea.Text 
     Dim semail As String = email.Text 
     Dim stel As Int64 = Int64.Parse(tel.Text) 
     Dim stel1 As Int64 = 0 & stel 
     Dim query As String = String.Empty 
     Dim sdob As Date = Date.Parse(dob.Text) 

     query &= "INSERT INTO Userinfo (UserName, pass_word, CNIC, " 
     query &= "      PartialAddress, Email, Telephone,DateOfBirth) " 
     query &= "VALUES (@colName,@colID, @colPhone, @colBranch,@colCourse,@coldblFee,@dobv)" 
     ' query &= "      PartialAddress, Email) " 
     ' query &= "VALUES (@colName,@colID, @colPhone, @colBranch,@colCourse)" 
     ' Using (sqlCon) 
     'sqlCon = New SqlConnection(strConn) 
     ' Dim sqlComm As New SqlCommand() 

     ' sqlComm.Connection = sqlCon 
     Using conn As New OleDbConnection(strConn) 
      Using comm As New OleDbCommand() 
       With comm 
        .Connection = conn 
        .CommandType = CommandType.Text 
        .CommandText = query 
        .Parameters.AddWithValue("@colName", username.Text) 
        .Parameters.AddWithValue("@colID", sfname) 
        .Parameters.AddWithValue("@colPhone", scnic) 
        .Parameters.AddWithValue("@colBranch", slimit) 
        .Parameters.AddWithValue("@colCourse", semail) 
        .Parameters.AddWithValue("@coldblFee", stel1) 
        .Parameters.AddWithValue("@dobv", sdob) 


       End With 
       ' Try 
       conn.Open() 
       comm.ExecuteNonQuery() 
       ' Catch(ex as SqlException) 
       'MessageBox.Show(ex.Message.ToString(), "Error Message") 
       ' End Try 
      End Using 
     End Using 

     ' End Using 

    End If 


End Sub` 

ошибка (Необходимо объявить скалярную переменную "@colName" .)
ошибка расположение comm.ExecuteNonQuery()

+0

См. Это, чтобы проверить и автогенерировать строку соединения SQLOLEDB ..... http: //stackoverflow.com/questions/28344367/connection-string-error-error-40/28344559#28344559 –

+0

Также обратите внимание, что это исключение объект, который вы поймали, вы знаете, 'ex' в вашем коде, вероятно, имеет весьма полезную информацию, которая * сообщит * вам, почему соединение не удалось открыть. Но вы просто * игнорируете эту информацию. –

+0

Пожалуйста, не редактируйте свой вопрос в * полностью * другой. Вы задали вопрос, у вас есть ответ, вы его приняли. Если у вас есть новый вопрос, подождите и задайте * новый вопрос. Если вы нажимаете лимит проводки, этот предел существует по какой-то причине. Вам нужно быть немного * пациентом * и принять, что есть * много * людей, которые хотят задавать вопросы здесь, и нет причин, по которым ваши вопросы больше (или, если на то пошло) важны, чем кто-либо. –

ответ

1

Попробуйте с SQL Server Native Client вместо:

Provider=SQLNCLI11.1;Integrated Security=SSPI;Initial Catalog=Test;Data Source=(localdb)\v11.0; 

EDIT:

Ваш код будет:

Dim connetionString As String 
    Dim cnn As OleDbConnection 
    connetionString = "Provider=SQLNCLI11.1;Integrated Security=SSPI;Initial Catalog=Test;Data Source=(localdb)\v11.0;" 
    cnn = New OleDbConnection(connetionString) 
    Try 
     cnn.Open() 
     MsgBox("Connection Open ! ") 
     cnn.Close() 
    Catch ex As Exception 
     MsgBox("Can not open connection ! ") 
    End Try 

Side Примечание: SQL LocalDB не работает со стандартной аутентификацией SQL Server, он работает только с интегрированной аутентификацией Windows.

+0

босс хорошо работает с sqlclient, я должен это делать с OleDbConnection –

+0

Эта строка соединения для OleDbConnection, а не для SqlClient. Он использует поставщик OLEDB собственного клиента SQL Server. –

+0

Большое спасибо, строка будет нормально, но новая странная ошибка возникает, я также нахожусь в Google. Должен объявить скалярную переменную –

0

Использование позиционных параметров OleDbCommand и знак вопроса? как маркер параметра, так же как и SqlCommand, который использует именованные параметры. Таким образом, оператор SQL должен быть:

INSERT INTO Userinfo 
(
    UserName, pass_word, CNIC, PartialAddress, 
    Email, Telephone, DateOfBirth 
) 
VALUES (?,?, ?, ?,?,?,?) 

Чтобы добавить параметры в коллекции OleDbCommand.Parameters вам не нужно ничего менять, вы можете использовать имя параметра, который вы хотите, пока все имена параметров различны. Но помните, вам нужно добавить параметры по порядку, потому что параметры позиционные.

+0

насчет .Parameters.AddWithValue ("@ ColName", username.Text) .Parameters.AddWithValue ("@ colID", sfname) .Parameters.AddWithValue ("@ colPhone", scnic) –

+0

Это должен работать ... Но у AddWithValue есть некоторые недостатки, см. http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/ –

+0

- это все еще Параметры ed запрос и сохранить наш db от повреждений –

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