Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#建立数据库(SQL)连接?_C#_Asp.net_Sql_Database - Fatal编程技术网

如何使用c#建立数据库(SQL)连接?

如何使用c#建立数据库(SQL)连接?,c#,asp.net,sql,database,C#,Asp.net,Sql,Database,我想建立一个数据库连接,以便使用C#接收客户的详细信息。我正在使用sql server 2008和visual studio 2010 以下是代码: <asp:Textbox id="TxtBox1" runat="server" /> <asp:Textbox id="TxtBox2" runat="server" /> <asp:Button id="Button1" runat="server" Onclick="Button1_Click" /> 我

我想建立一个数据库连接,以便使用C#接收客户的详细信息。我正在使用sql server 2008和visual studio 2010

以下是代码:

<asp:Textbox id="TxtBox1" runat="server" />
<asp:Textbox id="TxtBox2" runat="server" />
<asp:Button id="Button1" runat="server" Onclick="Button1_Click" />

我已经在其中创建了data.mdf文件,我已经创建了包含字段的表,但我正在获取连接并没有建立错误,有人能帮我解决我的问题吗

此连接字符串错误

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;" + 
                        "Password=YourPassword;"
应该是

string connectionString="Data Source=servername;InitialCatalog=DataBaseName; UserID=sa;" + 
                        "Password=YourPassword;"
但是,切勿在应用程序中使用sa用户。使用Management Studio创建新用户或更好地使用集成安全性

另外,代码的其余部分也应该以这种方式编写

using(SqlConnection sqlConnection=new SqlConnection(connectionString))
{
     string insertStatement="INSERT INTO TableName(column1,column2) VALUES (@col1, @col2)";
     SqlCommand sqlCommand=new SqlCommand(insertStatement,sqlConnection);
     sqlCommand.Parameters.AddWithValue("@col1", Text1);
     sqlCommand.Parameters.AddWithValue("@col2", Text2);
     sqlConnection.Open();
     sqlCommand.ExecuteNonQuery();
}
  • 使用以正确关闭和处置您的设备 SqlConnection
  • 在sql命令中使用以避免解析问题 一个

此连接字符串错误

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;" + 
                        "Password=YourPassword;"
应该是

string connectionString="Data Source=servername;InitialCatalog=DataBaseName; UserID=sa;" + 
                        "Password=YourPassword;"
但是,切勿在应用程序中使用sa用户。使用Management Studio创建新用户或更好地使用集成安全性

另外,代码的其余部分也应该以这种方式编写

using(SqlConnection sqlConnection=new SqlConnection(connectionString))
{
     string insertStatement="INSERT INTO TableName(column1,column2) VALUES (@col1, @col2)";
     SqlCommand sqlCommand=new SqlCommand(insertStatement,sqlConnection);
     sqlCommand.Parameters.AddWithValue("@col1", Text1);
     sqlCommand.Parameters.AddWithValue("@col2", Text2);
     sqlConnection.Open();
     sqlCommand.ExecuteNonQuery();
}
  • 使用以正确关闭和处置您的设备 SqlConnection
  • 在sql命令中使用以避免解析问题 一个

此代码不可编译。您需要在此行中添加分号:

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;"
string insertStatement="INSERT INTO TableName(column1,column2) VALUES Txtb1+","+Txtb2";
像这样:

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;";
您还需要更改此行:

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;"
string insertStatement="INSERT INTO TableName(column1,column2) VALUES Txtb1+","+Txtb2";
为此:

string insertStatement = "INSERT INTO TableName(column1,column2) VALUES " + Text1 + ", " + Text2;

此代码不可编译。您需要在此行中添加分号:

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;"
string insertStatement="INSERT INTO TableName(column1,column2) VALUES Txtb1+","+Txtb2";
像这样:

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;";
您还需要更改此行:

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;"
string insertStatement="INSERT INTO TableName(column1,column2) VALUES Txtb1+","+Txtb2";
为此:

string insertStatement = "INSERT INTO TableName(column1,column2) VALUES " + Text1 + ", " + Text2;

连接字符串本身可能是问题所在,windows有一种简单的方法来创建一个有效的连接字符串,您可以对其进行测试,然后将其复制到您的应用程序中。我在几个月前写过:

应用程序提示:

  • 正如asawyer所指出的,不要使用sa帐户,创建一个可以访问所需数据库的登录名

  • 使用该语句

例如:

using (SqlConnection connection = new SqlConnection(connectionString))  
    {  
      //here you open and execute the command
    }
  • 用户参数化查询以避免sql注入
连接字符串本身可能是问题所在,windows提供了一种简单的方法来创建有效的连接字符串,您可以对其进行测试,然后将其复制到应用程序中。我在几个月前写过:

应用程序提示:

  • 正如asawyer所指出的,不要使用sa帐户,创建一个可以访问所需数据库的登录名

  • 使用该语句

例如:

using (SqlConnection connection = new SqlConnection(connectionString))  
    {  
      //here you open and execute the command
    }
  • 用户参数化查询以避免sql注入
按如下方式使用连接字符串:

connectionString="Data Source=ServerAddress;Initial Catalog=DataBaseName;Integrated Security=SSPI;User ID=Domain\Username;Password=Password;"

按如下方式使用连接字符串:

connectionString="Data Source=ServerAddress;Initial Catalog=DataBaseName;Integrated Security=SSPI;User ID=Domain\Username;Password=Password;"

不要在应用程序中使用sa帐户!此代码极易受到sql注入攻击,更不用说连接字符串格式不正确,并且
inserstation
行将无法编译。对不起,我没有收到您的信息。您能告诉我有关sa的信息吗???您使用的是管理员帐户。对sql server具有完全访问权限的服务器。您所需要的只是一个对一个表具有写访问权限的帐户。始终尽可能使用最低权限。必须进行适当的研究:kk如果你不介意的话,你可以以两个文本字段为例发布修改后的代码,然后单击“提交”按钮,数据将存储到数据库中(根据我的要求,我正在使用VisualStudio2010和SQLServer2008,请发布替代代码)不要在应用程序中使用sa帐户!此代码极易受到sql注入攻击,更不用说连接字符串格式不正确,并且
inserstation
行将无法编译。抱歉,我不明白您是否可以表达我对sa的看法???您使用的是管理员帐户完全访问sql server。您所需要的只是一个对一个表具有写访问权限的帐户。始终使用尽可能少的权限。必须进行适当的研究:kk如果您不介意,您可以以两个文本字段为例发布修改后的代码,然后单击“提交”按钮,数据将存储到数据库中(根据我的要求,我正在使用VisualStudio2010和SQLServer2008,请发布替代代码)我也要重新编写了。我总是将SqlCommand也包含在using块中。是的,也应该在SqlCommand上执行,但问题是在SqlConnection上。基于上述给定代码单击submit按钮后,该代码没有响应。我不明白。你说的“没有响应”是什么意思?代码我s not executed?,记录未写入数据库?您希望看到代码执行的任何视觉反馈吗?请解释一下我也要重新写入。我也总是将SqlCommand包含在using块中。是的,也应该在SqlCommand上执行,但在基于上面给出的代码没有对该代码的响应我不理解。你说的“没有响应”是什么意思?代码没有执行?记录没有写入数据库?你希望看到代码执行的任何视觉反馈吗?请解释