는 내가 SQL 테이블에서 선택된 데이터 바인딩 DataList 컨트롤을 시도하고있다 ".. 연결이 연결의 현재 상태가 열려 닫히지 않았습니다"나는이 코드를 실행하면DataList 바인딩 : "연결이 닫히지 않았습니다. 연결의 현재 상태가 열려 있습니다."
private void ShowPossiblePurchases(string CategoryName)
{
string selectSQL = "SELECT TOP 2 * FROM Menu WHERE [email protected] ORDER BY NEWID()";
SqlCommand cmd = new SqlCommand(selectSQL, connection);
cmd.Parameters.AddWithValue("@CategoryName", CategoryName);
SqlDataReader reader;
DataList DataList1 = (DataList)lgnView.FindControl("DataList1");
try
{
connection.Open();
reader = cmd.ExecuteReader();
DataList1.DataSource = reader;
DataList1.DataBind();
reader.Close();
}
catch (Exception ex)
{
Label lblError = (Label)lgnView.FindControl("lblError");
lblError.Text = ex.Message;
}
finally
{
connection.Close();
}
, 난 얻을
private void ShowPossiblePurchases(string CategoryName)
{
string selectSQL = "SELECT TOP 2 * FROM Menu WHERE [email protected] ORDER BY NEWID()";
SqlCommand cmd = new SqlCommand(selectSQL, connection);
cmd.Parameters.AddWithValue("@CategoryName", CategoryName);
SqlDataReader reader;
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add("Products");
myDataSet.Tables["Products"].Columns.Add("ProductID");
myDataSet.Tables["Products"].Columns.Add("CategoryID");
myDataSet.Tables["Products"].Columns.Add("ProductName");
myDataSet.Tables["Products"].Columns.Add("Price");
DataList DataList1 = (DataList)lgnView.FindControl("DataList1");
try
{
connection.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
DataRow rowNew = myDataSet.Tables["Products"].NewRow();
rowNew["ProductID"] = reader["ProductID"];
rowNew["CategoryID"] = reader["CategoryID"];
rowNew["ProductName"] = reader["ProductName"];
rowNew["Price"] = reader["Price"];
myDataSet.Tables["Products"].Rows.Add(rowNew);
}
DataList1.DataSource = myDataSet.Tables["Products"];
DataList1.DataBind();
}
catch(Exception ex)
{
Label lblError = (Label)lgnView.FindControl("lblError");
lblError.Text = ex.Message;
}
finally
{
connection.Close();
}
}
을 방지하려면, 결과를 다른 콜렉션에 복사하고이를 데이터 소스로 사용해야 할 것입니다. – w69rdy
연결에 중단 점을 넣을 것입니다. 그리고 나서 단계별로보고 그 오류가 발생한 곳을 확인하십시오. – esastincy
@ w69rdy : 첫 번째 게시물을 편집했습니다. 이제 DataList 컨트롤을 바인딩하기 위해 DataSet을 사용한 메서드의 이전 버전을 읽을 수도 있습니다. 그 버전조차도 언급 된 오류를 일으켰습니다. – Adriano