不支持关键字:'服务器(本地);数据库'

时间:2016-04-19 09:57:30

标签: asp.net

我的web.config是

<connectionStrings>
    <add name="taraznegarConnectionString" connectionString="Data Source=.;Initial Catalog=taraznegar;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

这是我的代码:

namespace taraz
{
    public class DAL
    {
        string connection = "Data Source=.;Initial Catalog=taraznegar;Integrated Security=True";
        SqlConnection con;
        SqlCommand cmd;
        SqlDataAdapter da;
        DataTable dt;
        public DAL()
        {
            con = new SqlConnection();
            con.ConnectionString = connection;
            cmd = new SqlCommand();
            cmd.Connection = con;
            da = new SqlDataAdapter();
            da.SelectCommand=cmd;
            dt = new DataTable();

        }
        public DataTable ExecuteReader(string SQL)
        {
            connect();
            da.SelectCommand.Connection = con;
            da.SelectCommand.CommandText = SQL;
            try
            {
                da.SelectCommand.ExecuteReader();
            }
            catch
            {
                da = null;
            }
            disconnect();
            da.Fill(dt);
            return dt;
        }
       public string ExcuteNonQuery(string SQL)
        {
            string result=null ;
            cmd.CommandText = SQL;
            connect();
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch { result = "خطا"; }
            disconnect();
            return result;
        }
        public string ExecuteScalare(string sql)
        {
            string result = null;
            cmd.CommandText = sql;
            connect();
            try { 
                result = cmd.ExecuteScalar().ToString();
            }
            catch { result = "خطا"; }
            disconnect();
            return result;

        }

        void connect()
        {
            if (con.State == ConnectionState.Closed)
                con.Open();
        }
        void disconnect()
        {
            if (con.State == ConnectionState.Open)
                con.Close();
        }

    }
}

当我在我的项目中使用此类时,错误是:

  

&#39; /&#39;中的服务器错误应用

     

不支持关键字:&#39;服务器(本地);数据库&#39;

问题是什么?

2 个答案:

答案 0 :(得分:0)

如果您的webconfig文件中有ConnectionString,那么在您的应用程序中,您无需创建其他连接。你应该使用那个连接。在您的班级DAL中,您正在创建一个新的连接字符串。而不是你应该使用这样的东西 -

string connectionString = ConfigurationManager.ConnectionStrings["taraznegarConnectionString"].ConnectionString; 

答案 1 :(得分:0)

对于Entity Framework(数据库优先或模型优先;当您拥有物理EDMX模型文件时),您需要使用特殊类型的连接字符串,这与其他人提到的直接ADO.NET连接字符串完全不同到目前为止......

连接字符串必须类似于:

<connectionStrings>
    <add name="testEntities" 
         connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;Initial Catalog=taraznegar;Integrated Security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>

在此连接字符串中,您将找到provider connection string=属性,该属性基本上是您的ADO.NET连接字符串: