ExecuteReader的问题,请教了!
代码如下:
private void GridViewBind(string Sqlsort)
{
String dknf;
OleDbConnection oledbconn = new OleDbConnection();
oledbconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath("../App_Data/oil.mdb");
OleDbCommand cmd = oledbconn.CreateCommand();
cmd.CommandText = "SELECT top 1 * FROM kanwu order by dkh desc";
oledbconn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
dknf = dr["dknf"].ToString();
}
dr.Close();
oledbconn.Close();
String user = Session["currentUser"].ToString();
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath("../App_Data/oil.mdb");
DataSet ds = new DataSet();
String SqlStr = "SELECT * FROM kanwu where status='已办结' and dknf='"+dknf+"' ORDER BY dkh ASC";
try
{
if (conn.State.ToString() == "Closed") conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter(SqlStr, conn);
da.Fill(ds, "kanwu");
if (conn.State.ToString() == "Open") conn.Close();
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataKeyNames = new string[] { "dkh" };
GridView1.DataBind();
if (ds.Tables[0].Rows.Count.ToString() == "0")
{
Response.Write("当前没有已办结订单!");
}
}
catch (Exception ex)
{
Response.Write("数据库错误,错误原因:" + ex.Message);
Response.End();
}
}
为什么dknf值取不出来,执行到“String SqlStr = "SELECT * FROM kanwu where status='已办结' and dknf='"+dknf+"' ORDER BY dkh ASC";”总提示Use of unassigned local variable 'dknf',但是我在“dknf = dr["dknf"].ToString(); ”后放上response.write("dknf");却又可以把dknf显示出来?
请大家看看是什么原因,万分感谢!