[英]C# SqlCommand Connection.Open() issue
我有一個C#ASP.NET Web應用程序,我正在嘗試使用數據庫表中的列填充ASP:DropDownList。
我的代碼:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Configuration;
namespace CRM2Sage
{
public partial class SOPOrderEntry : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Fill1();
}
public void Fill1()
{
SqlCommand cmd = new SqlCommand("SELECT * FROM Products", new SqlConnection(WebConfigurationManager.AppSettings["CRM2Sage"]));
//cmd.Connection.Open();
cmd.Connection.Open();
SqlDataReader ddlValues;
ddlValues = cmd.ExecuteReader();
vproduct.DataSource = ddlValues;
vproduct.DataValueField = "theName";
vproduct.DataTextField = "theName";
vproduct.DataBind();
cmd.Connection.Close();
cmd.Connection.Dispose();
}
}
}
當我運行頁面時,我收到以下錯誤
ConnectionString屬性尚未初始化。
指向cmd.Connection.Open();
我無法理解為什么,SQL連接存儲在我的web.config文件中。
web.config
<?xml version="1.0"?>
<configuration>
<appSettings />
<connectionStrings>
<add name="CRM2Sage" connectionString="Data Source=W2003CRMDEMO; Initial Catalog=CRM2Sage; User ID=newSA; Password=password;" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true">
</compilation>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows" />
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
有人可以幫忙嗎?
干杯
賈斯汀
您需要檢索.ConnectionString
屬性:
string connectionString = WebConfigurationManager.ConnectionStrings["CRM2Sage"].ConnectionString;
using(SqlConnection _con = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand("SELECT * FROM Products", _con))
{
// do your stuff here
}
你現在正在做的只是通過CRM2Sage
的名稱檢索<connectionStrings>
下的整個條目。
問題是,您正在訪問AppSettings
,但是您想要訪問連接字符串:
new SqlConnection(WebConfigurationManager.ConnectionStrings.ConnectionStrings["CRM2Sage"].ConnectionString)
您可以使用
System.Web.Configuration.WebConfigurationManager.ConnectionStrings["CRM2Sage"].ConnectionString;
Or
System.Configuration.ConfigurationManager.ConnectionStrings["CRM2Sage"].ConnectionString;
在asp.net中。 但不是
WebConfigurationManager.AppSettings["CRM2Sage"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.