我无法使用Visual Studio将数据发送/插入到我的新数据库表中

本文关键字:插入 我的 数据库 Visual 数据 Studio | 更新日期: 2023-09-27 18:22:21

我在尝试将数据发送到数据库时遇到问题。

基本上,我使用的是Visual Studio 2012(Professional)已经实现的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;";

我无法使用Visual Studio将数据发送/插入到我的新数据库表中

针对所有连接字符串问题。你想看看该网站的sql部门。

我认为SQLOLEDB提供程序不理解使用LocalDB所需的连接字符串
(LocalDB比SQLOLEDB更新)

尝试使用SQLNCLI11(Sql Server Native Client 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-establish-a-connection-with-sql-server-using-c

也许它可以帮助您解决数据库连接问题:)