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();
}
訪問在LineAData()方法中調用的數據庫的代碼是什麼?你沒有足夠的那個類來真正地診斷問題(方法和屬性)。在附註中,使用存儲過程而不是將查詢作爲字符串寫入您的類中。另外,您將參數傳遞給沒有定義任何參數的查詢。 –
你看過Asp.net中繼器控件嗎?如果你想做到沒有中繼器,爲什麼不創建公共/保護變量,在代碼隱藏中賦值,並在你的aspx頁面中顯示它們。 – highwingers