簡體   English   中英

c#.net VS2010中的數據庫連接

[英]Database connection in c#.net VS2010

我正在嘗試使用數據集連接到.net中的數據庫。 我的代碼適用於工作簿創建者。 該方法將問題從數據庫中取出並放入列表中。 當我運行代碼時,出現下一個錯誤:

System.ArgumentException was unhandled by user code
  Message=Format of the initialization string does not conform to specification starting at index 103.
  Source=System.Data
  StackTrace:
       at System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue)
       at System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey)
       at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules)
       at System.Data.OleDb.OleDbConnectionString..ctor(String connectionString, Boolean validate)
       at System.Data.OleDb.OleDbConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous)
       at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(String connectionString, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)
       at System.Data.OleDb.OleDbConnection.ConnectionString_Set(String value)
       at System.Data.OleDb.OleDbConnection.set_ConnectionString(String value)
       at System.Data.OleDb.OleDbConnection..ctor(String connectionString)
       at System.Data.OleDb.OleDbDataAdapter..ctor(String selectCommandText, String selectConnectionString)
       at bookPage.getPageDB() in c:\Users\asaf_pearl\Documents\Visual Studio 2010\WebSites\bookreator\App_Code\question.cs:line 188
       at book.Page_init(Object sender, EventArgs e) in c:\Users\asaf_pearl\Documents\Visual Studio 2010\WebSites\bookreator\book.aspx.cs:line 23
       at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
       at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
       at System.Web.UI.Control.OnInit(EventArgs e)
       at System.Web.UI.Page.OnInit(EventArgs e)
       at System.Web.UI.Control.InitRecursive(Control namingContainer)
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: 

代碼是:

public void getPageDB( )
{
    string ConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data   
     Source=C:\\Users\\asaf_pearl\\Documents\\Visual Studio 
     2010\\WebSites\bookreator\\App_Data/bookretorDB1.accdb" + ";";
    string myQuery = "select from fivebaloons where page=1";

    OleDbDataAdapter oda = new OleDbDataAdapter   (myQuery, ConnStr);
    DataSet ds = new DataSet();
    oda.Fill(ds);
    foreach(DataRow pRow in ds.Tables[0].Rows){

        _currentQuest.question=pRow["question"].ToString();
        _currentQuest.questionNumber =Convert.ToInt16( pRow["questionnumber"]);
        _currentQuest.rightAnswer=pRow["answer"].ToString();
        _currentQuest.goodFeedBack=pRow["goodfeedback"].ToString();
        _currentQuest.badFeedBack1=pRow["badfeedback1"].ToString();
        _currentQuest.badFeedBack2=pRow["badfeedback2"].ToString();
        AllQuestions.Add(_currentQuest);
    }
}

你能告訴我怎么了嗎? (在另一個代碼中,它的工作)

它告訴您錯誤在哪里:初始化時在索引103處,即連接字符串。

...初始化字符串的格式不符合從索引103開始的規范...

您問題中的代碼格式不允許對字符進行精確計數,但是很可能是因為您使用了一個反斜杠(而不是像其他任何地方一樣使用轉義的反斜杠)

string connStr = "... WebSites\bookreator ..."; 

更改為

string connStr = "... WebSite\\bookreator ...";

注意:此片段“ App_Data/bookretorDB1.accdb ”中的(正)斜杠應該可以,因為Windows API通常也接受它作為目錄分隔符。 至少出於一致性考慮,您可能還希望在此處使用\\\\

嘗試這樣寫連接字符串

string constr = string.Format( "Data Source={0};Initial Catalog={1};Integrated Security=SSPI", YourServerName,YourDatabaseName);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM