簡體   English   中英

我無法使用Visual Studio將數據發送/插入到新數據庫表中

[英]I cannot send/insert data into my new database table using Visual Studio

我在嘗試將數據發送到數據庫時遇到麻煩。

基本上,我使用的是Visual Studio 2012(專業版)已實現的ASP.Net Web表單。 我創建了一個名為“ users.asps”的額外頁面,其中只有三個文本框(用戶名,全名和電子郵件)。 然后,我還創建了一個名為“ Datatest.mdf”的新數據庫,並在名為“ users”的數據庫中添加了一個表,該表包含三個屬性:用戶名(主鍵),名稱和電子郵件。

以下是我在頁面上按鈕的代碼。 這是我要將所有輸入的數據發送到數據庫表的地方。

protected void Button1_Click(object sender, EventArgs e)
{
    string strun = Request.Form["username"];
    string strna = Request.Form["name"];
    string strem = Request.Form["email"];

    OleDbConnection objconnection = null;
    OleDbCommand objcmd = null;
    string stringconnection = null;
    string strSQL = null;

    //connection string

    stringconnection = "provider=SQLOLEDB;data source=(LocalDb)\\v11.0;Initial Catalog=Datatest; Integrated Security=SSPI;";

    objconnection = new OleDbConnection(stringconnection);
    objconnection.ConnectionString = stringconnection;

    objconnection.Open();

    strSQL = "insert into users(username, name, email)values(?,?,?)";
    objcmd = new OleDbCommand(strSQL, objconnection);
    objcmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("@username", strun));
    objcmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("@name", strna));
    objcmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("@email", strem));
    objcmd.ExecuteNonQuery();

    //close connection

    objconnection.Close();
    Response.Write("Entered Successfully");

}

但是,當我運行表單時,出現錯誤“用戶代碼未處理OleDbException”,然后顯示“ SQL Server不存在或訪問被拒絕”,其中的箭頭指向objconnection.Open();

盡管錯誤位於何處,但我知道問題出在我的字符串連接所在的地方,我只是不知道該如何解決。

stringconnection = "provider=SQLOLEDB;data source=(LocalDb)\\v11.0;Initial Catalog=Datatest; Integrated Security=SSPI;";

對於您的所有連接字符串問題。 您想查看該網站的sql部門

我認為SQLOLEDB提供程序不理解使用LocalDB所需的連接字符串。
(LocalDB比SQLOLEDB更新)

嘗試使用SQLNCLI11(SQL Server本機客戶端v11)

"provider=SQLNCLI11;data source=(LocalDb)\\v11.0;
 Initial Catalog=Datatest; Integrated Security=SSPI;";

但是,如果您正處於開發應用程序的初始階段,我真的建議您使用SqlClient類(例如SqlConnection,SqlCommand等),並拋棄OleDb及其所有限制。 (不支持命名參數)

 using System.Data.SqlClient;
 ......


stringconnection = @"Data Source=(LocalDb)\\v11.0;Initial Catalog=Datatest;
                    Integrated Security=SSPI;";

using(objconnection = new SqlConnection(stringconnection))
{
    objconnection.Open();
    strSQL = "insert into users(username, name, email)values(@username, @name, @email)";
    using(objcmd = new SqlCommand(strSQL, objconnection))
    {
        objcmd.Parameters.Add(new SqlParameter("@username", strun));
        objcmd.Parameters.Add(new SqlParameter("@name", strna));
        objcmd.Parameters.Add(new SqlParameter("@email", strem));
        objcmd.ExecuteNonQuery();
    }
}
Response.Write("Entered Successfully");

嘗試訪問此鏈接https://www.daniweb.com/software-development/csharp/threads/339949/how-to-建立-a-connection-with-sql-server-using-c

也許它可以幫助您解決數據庫連接問題:)

暫無
暫無

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

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