2013-07-07 82 views
5

Mã của tôi là xem tất cả các dữ liệu trong GridViewGiải quyết lỗi "Thuộc tính ConnectionString chưa được khởi tạo."?

đang Web.config được

<configuration> 
    <connectionStrings> 
    <add name="ConStr" connectionString="DataSource=.;Integrated Security=SSPI;Initial catalog=sshopping"/> 
    </connectionStrings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5"/> 
    <httpRuntime targetFramework="4.5"/> 
    </system.web> 
</configuration> 

Nó được mã hoá trong lớp bên ngoài

namespace DBAction 
{ 
    public class ViewAction 
    { 
     public DataSet GetAllData() 
     { 
       SqlCommand cmd = DataConnection.GetConnection().CreateCommand(); 
       cmd.CommandText = "Select UserName,Password,RoleName,EmailID,SecurityQuestion,SecurityAnswer,LastLogin from LoginInfo"; 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 
       DataSet ds = new DataSet(); 
       da.Fill(ds); 
       cmd.Dispose(); 
       DataConnection.CloseConnection(); 
       return ds; 
     } 
    } 
} 

nó được đưa ra lỗi trong dòng da.Fill(ds) Các mã để ràng buộc nguồn dữ liệu với GridView được mã hóa khi tải trang như thế này.

DataSet ds = new ViewAction().GetAllData(); 
     gvLoginInfo.DataSource = ds; 
     gvLoginInfo.DataBind(); 

Và conectionstring mã trong lớp kết nối dữ liệu là

public static SqlConnection GetConnection() 
     { 

      if (con == null) 
      { 
       con = new SqlConnection(); 
       con.ConnectionString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString; 
       con.Open(); 
      } 

      return con; 
     } 

Và một trong một lỗi là

Exception Details: System.ArgumentException: Keyword not supported: 'datasource'. 

Source Error: 


Line 19:    { 
Line 20:     con = new SqlConnection(); 
Line 21:     con.ConnectionString =ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString; 
Line 22:     con.Open(); 
Line 23:    } 
+0

... và bạn có một khối Ngoại lệ trống. Kiểm tra xem trước khi đi đến tất cả những rắc rối này của yêu cầu những gì là lỗi. –

+0

Bạn có thể đăng chuỗi kết nối của mình từ tệp web.config không? – asafrob

+0

vâng thưa bạn tôi đã đăng @asafrob – VJain

Trả lời

4

Lỗi này là chỉ trong Web.Config. Vui lòng đặt một khoảng trống giữa DataSource trong connectionString dưới dạng: Nguồn dữ liệu. Vì vậy, kết nối của bạn Chuỗi sẽ trở thành:

"Data Source=.;Integrated Security=SSPI;Initial catalog=sshopping". 
1

Tôi đã gặp lỗi tương tự, ngay cả sau khi đã thực hiện tất cả thay đổi bạn đã đề cập ở trên. Và sau đó, tôi thay đổi mã của tôi theo cách đó:

Web.Config của tôi:

<connectionStrings> 
    <add name="conStr" connectionString="Data Source=SomeDS;Initial Catalog=SomeCatalog;User Id=myId;Password=myPass" /> 
</connectionStrings> 

Mã cũ của tôi:

string ConnectionString = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString; 


     using (var sqlConnection = new SqlConnection(ConnectionString)) 
     { 
      var result= sqlConnection.Query<My_Class>("MY_PROC_NAME", new { count }, commandType: CommandType.StoredProcedure); 
      return result; 
     } 

newCode của tôi:

var dt = new DataTable(); 

       using (var cnn = new SqlConnection(ConnectionString)) 
       using (var cmd = new SqlCommand("MY_PROC_NAME", cnn)) 
       { 
        cmd.CommandType = CommandType.StoredProcedure; 

        cnn.Open(); 
        var sqlReader = cmd.ExecuteReader(); 
        if (sqlReader.HasRows) 
         dt.Load(sqlReader); 

        cnn.Close(); 
       } 
       result = dt.DataTableToList<My_Class>(); 

DataTableToList là một phương pháp chuyển đổi, nếu bạn cần tôi có thể chia sẻ nó, quá.

Các vấn đề liên quan