Ошибка конфигурации ConnectionString - PullRequest
0 голосов
/ 16 апреля 2009

Я пытаюсь создать RSS-канал с asp.net, sql и xml. Я получаю ошибку

Сообщение об ошибке компилятора: CS0103: The имя «MyConnString» не существует в текущий контекст "в строке 22 "SqlConnection objConnection = новый SqlConnection ( "MyConnString");

Моя веб-конфигурация содержит

<connectionStrings>
    <add name="MyConnString" connectionString="
     providerName="System.Data.SqlClient" />
  </connectionStrings>

Вот код

<%@ Page Language="C#" MasterPageFile="ContentMasterPage.master" Debug="true" %>

<%@ Import Namespace="System.Xml"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">
    void Page_load(object sender, System.EventArgs e)
    {
        Response.Clear();
        Response.ContentType = "text/xml";
        XmlTextWriter objX = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
        objX.WriteStartDocument();
        objX.WriteStartElement("rss");
        objX.WriteAttributeString("version", "2.0");
        objX.WriteElementString("title", "News");
        objX.WriteElementString("link", "http://news.ca/news.aspx");
        objX.WriteElementString("description", "The latest headlines");
        objX.WriteElementString("copyright", "(c)2009, News Club, All rights reserved.");
        objX.WriteElementString("ttl", "5");
        SqlConnection objConnection = new SqlConnection("MyConnString");
        objConnection.Open();
        string sql = "SELECT TOP 5 Title, Description, ArticleID, DatePulished FROM articles ORDER BY DatePublished DESC";
        SqlCommand objCommand = new SqlCommand(sql, objConnection);
        SqlDataReader objReader = objCommand.ExecuteReader();
        while (objReader.Read())
        {
            objX.WriteStartElement("item");
            objX.WriteElementString("title", objReader.GetString(0));
            objX.WriteElementString("description", objReader.GetString(1));
            objX.WriteElementString("link", ("http://news.ca/GetArticle.aspx?id=" + objReader.GetInt32(2).ToString()));
            objX.WriteElementString("pubDate", objReader.GetDateTime(3).ToString("R"));
            objX.WriteEndElement();
        }
        objReader.Close();
        objConnection.Close();
        objX.WriteEndElement();
        objX.WriteEndElement();
        objX.WriteEndDocument();
        objX.Flush();
        objX.Close();
        Response.End();
    }
</script>

Ответы [ 3 ]

3 голосов
/ 16 апреля 2009
SqlConnection objConnection = new SqlConnection("MyConnString");

Это строка, с которой компилятору трудно справиться. Вы заменили вашу строку подключения на «MyConnString» или MyConnString должен быть строковым значением на странице?

У меня есть похожая строка кода в моем приложении:

SqlConnection oConn= new SqlConnection(_connString);

Вы также можете получить это значение из Web.Config

SqlConnection oConn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString);
0 голосов
/ 16 апреля 2009

Как говорит исключение, у вас есть ошибка в этой строке:

SqlConnection objConnection = new SqlConnection("MyConnString");

Предполагая, что у вас есть строка подключения в web.config в разделе connectionStings, вы должны установить строку подключения следующим образом:

SqlConnection objConnection = new 
SqlConnection(ConfigurationManager.ConnectionStrings["MyConnString"]);

Кстати, вы должны добавить System.Configuration в качестве ссылки на ваш проект, используя класс ConfigurationManager.

0 голосов
/ 16 апреля 2009

SqlConnection принимает connectionString, а не ссылку в web.config. Или дважды проверьте ваш web.config

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...