如何建立数据库(sql)连接以使用 c# 从文本字段接收数据?

Posted

技术标签:

【中文标题】如何建立数据库(sql)连接以使用 c# 从文本字段接收数据?【英文标题】:How to Establish database(sql) Connection to receive the data from textfields using c#? 【发布时间】:2012-12-09 03:10:03 【问题描述】:

我想建立数据库连接以从文本字段接收数据并将该数据存储在数据库记录中。 为此,到目前为止我已经尝试过:

我创建了.mdf 数据库文件,并创建了名称为Table1 的表,并放置了两个文本字段和提交按钮,代码如下: data.aspx

<b>Username:<asp:TextBox ID="TextBox1" runat="server" BackColor="AliceBlue">
</asp:TextBox><br/>
<b>Lastname:<asp:TextBox ID="TextBox2" runat="server" BackColor="AliceBlue">
</asp:TextBox><br/>
<asp:Button ID="Button1" runat="server" Text="Submit" OnClick="SubmitBtn_Click"/>

代码文件如下: data.aspx.cs

using System.Web.Configuration;
using System.Data.SqlClient;
protected void SubmitBtn_Click(object sender, EventArgs e)

    string connectionStrings = "Data Source=|SQLEXPRESS;Integrated                       
   Security=True; Connect Timeout=30;User Instance=True;";

    using (SqlConnection sqlConnection = new SqlConnection(connectionStrings))

    string insertStatement = "INSERT INTO Table1(column1,column2) 
                              VALUES (@col1, @col2)";
    SqlCommand sqlCommand = new SqlCommand(insertStatement, sqlConnection);
    sqlCommand.Parameters.AddWithValue("@col1", TextBox1.Text);
    sqlCommand.Parameters.AddWithValue("@col2", TextBox2.Text);
    sqlConnection.Open();
    sqlCommand.ExecuteNonQuery();
    try
    
        sqlConnection.Open();
        sqlCommand.ExecuteNonQuery();

    
    finally
    
        sqlConnection.Close();
    




我还有如下配置文件来建立连接,代码如下: web.config

<?xml version="1.0"?>
<configuration>
<system.web>
    <compilation debug="true" targetFramework="4.0" />

</system.web>
</configuration>

但是对于该代码,我在单击提交按钮后收到此错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

还有一个例外:

System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

谁能帮帮我?

【问题讨论】:

嗯...SQL Server 确定运行了吗? 启用 SqlServerBrowser.. 它会监听请求 ...同时检查 TCP/IP 协议是否没有为 SQL Server 禁用 开启SqlServer浏览器时出现问题,但tcp/ip都开启了 是的,问题已解决,SqlServerBrowser 正在运行,但在运行代码时获取我过去的异常没有任何变化 不像程序员,但试试这个..从博客中挑选.." 这对我有用。希望它可以帮助其他人。在设置连接槽向导时:1.在添加连接窗口单击高级按钮 2. 找到数据源属性并将其删除。" 【参考方案1】:

检查你的 sql server 实例是否正在运行。转到 开始->SQL Server 配置管理器 并检查您的 sql server 实例是否已启动。

或尝试将您的连接字符串更改为

string connectionStrings = "Data Source=.\SQLEXPRESS;
 Initial Catalog=databaseName Integrated Security=True;";

【讨论】:

在 SqlServerConfigurationManager->SqlServerservices 下 Sqlserver 正在运行...而剩余的 SqlServerBrowser 和 SqlServerAgent 都已停止 您是否连接到正确的数据库?你的数据库名称正确吗? 是的,它是...MicrosoftSqlServer2008,我在我的系统中使用的是 mysqlversion 5.1 不适用于 MySQL。如果您的 mysql 连接字符串正确,请尝试在互联网上检查【参考方案2】:

抛出异常是因为您的 SQL Server 实例实际上不可访问,或者您的 SQL Server 实例未启动,或者有防火墙阻止了对默认 1433 端口的请求,以远程访问 SQL Server 实例。

阅读文档页面:http://msdn.microsoft.com/en-us/library/ms177440.aspx

记得检查你的连接字符串。你写的连接字符串:

"Data Source=|SQLEXPRESS;Integrated                       
   Security=True; Connect Timeout=30;User Instance=True;"

我认为这是不正确的。如果您要连接到名为 SQLEXPRESS 的本地第二个 SQL 实例,则这是正确的连接字符串:

"Data Source=.\SQLEXPRESS;Integrated                       
   Security=True; Connect Timeout=30;User Instance=True;"

此外,您正在使用设置Integrated Security=True;。这意味着您正在尝试使用您的 Windows 凭据进行连接。您确定您有权使用您的 Windows 凭据进行连接吗? 如果没有,请删除此设置并添加您的用户名和密码,例如在此连接字符串中:

"Data Source=.\SQLEXPRESS;User Id=sa; Password=sa123; Connect Timeout=30;"

阅读this有关使用Integrated Security设置的有趣问题。

另外,您的 SQLEXPRESS 实例似乎是 user instance。此实例是否启用?

【讨论】:

以上是关于如何建立数据库(sql)连接以使用 c# 从文本字段接收数据?的主要内容,如果未能解决你的问题,请参考以下文章

怎么用c#代码在sql中建立新的数据库?

需要有关在 asp.net C# 中使用的 sql 连接的信息

如何使用 C# 和 SQL Server 连接到数据库

C#与SQL Server建立连接出错

如何以最佳方式在 C# 中处理 SQL 连接? [复制]

在C#里连接SQL 2008 报错:已成功与服务器建立连接 但登录前握手期间发生错误 网络名不可再用