2013-12-11 31 views
1

我有一個DataClassLibrary附加到我的ASP.Net項目。我用它來訪問數據庫來獲取我的值。我想獲得Line1類中給出的值並將它們放入相應的標籤中。我試過DataLibraryClass.Line1 NewDataA = new DataLibraryClass.Line1();但它給了我一個零我知道他們有價值。難道是我的NewDataA = new導致它返回零嗎?我還在Line1類中使用了斷點,它永遠不會到達數據庫查詢。我怎樣才能正確地獲取所需數據到標籤中?從C#DataLibrary中檢索一個值,將放置在ASP.Net標籤

DataLibraryClass 線路1:

var sqlString = new StringBuilder(); 
sqlString.Append("SELECT CaseNum6, CaseNum9, Group, Completion "); 
sqlString.Append("FROM WorkOrder "); 
sqlString.Append("WHERE Group = 1 OR Group = 2 "); 
sqlString.Append("AND Completion = 0 "); 

SqlDataReader reader = null; 
SqlConnection dbConn = DBHelper.getConnection(); 
SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@CaseNum6", CaseNum6)}; 

    try 
    { 
     reader = DBHelper.executeQuery(dbConn, sqlString.ToString(), parameters); 
     if (reader != null) 
     { 
      if (reader.Read()) 
      { 
       CaseNum6 = (int)reader["CaseNum6"]; 
       CaseNum9 = (int)reader["CaseNum9"]; 
       Group = (int)reader["Group"]; 
       Completion = (bool)reader["Completion"]; 
      } 
      else 
       throw new Exception("No record returned"); 
      reader.Close(); 
      reader.Dispose(); 
      dbConn.Close(); 
      dbConn.Dispose(); 

DataLibraryClass DBHelper:

private DBHelper() { } 

public static SqlConnection getConnection() 
{ 
    return new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString); 
} 

public static SqlConnection getFRESHConnection() 
{ 
    return new SqlConnection(ConfigurationManager.ConnectionStrings["FRESHConnection"].ConnectionString); 
} 

public static SqlDataReader executeQuery(SqlConnection dbConn, string sqlString, SqlParameter[] parameters) 
{ 
    SqlCommand cmd = null; 
    SqlDataReader reader = null; 
    try 
    { 
     if (dbConn.State == ConnectionState.Closed) 
      dbConn.Open(); 
     cmd = dbConn.CreateCommand(); 
     cmd.CommandText = sqlString; 
     if (parameters != null) 
     { 
      cmd.Parameters.AddRange(parameters); 
     } 
     reader = cmd.ExecuteReader(); 
     cmd.Dispose(); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
    return reader; 

後面的代碼ASP頁:

DataClassLibrary.LineAData NewDataA = new DataClassLibrary.LineAData(); 
DataClassLibrary.LineBData NewDataB = new DataClassLibrary.LineBData(); 

protected void Page_Load(object sender, EventArgs e) 
{ 
    L1.Text = NewDataA.CaseNum6.ToString(); 
    L2.Text = NewDataA.CaseNum9.ToString(); 

    L4.Text = NewDataB.CaseNum6.ToString(); 
    L5.Text = NewDataB.CaseGNum9.ToString(); 
} 
+0

訪問在LineAData()方法中調用的數據庫的代碼是什麼?你沒有足夠的那個類來真正地診斷問題(方法和屬性)。在附註中,使用存儲過程而不是將查詢作爲字符串寫入您的類中。另外,您將參數傳遞給沒有定義任何參數的查詢。 –

+0

你看過Asp.net中繼器控件嗎?如果你想做到沒有中繼器,爲什麼不創建公共/保護變量,在代碼隱藏中賦值,並在你的aspx頁面中顯示它們。 – highwingers

回答

0

一旦建立網頁我沒有意識到後面的代碼被設置爲.vb而不是.cs,這就是爲什麼e有什麼不起作用。

相關問題