SqlConnection conn = new SqlConnection( "连接字符串 ");
conn.Open();
DataSet ds = new DataSet();
string sql = "sql语句 ";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds);
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
if ((byte)ds.Tables[0].Rows[i][ "IsDisplay "] == 0)
{
((ComponentArt.Web.UI.Grid)sender).Levels[0].Columns[i].Visible = false;
}
}
这是一个数据绑定的方法,但因为访问的是每一列,因此有可能会造成超时的问题..
能否把DataSet添加到viewstate?这样有用吗?
有用的问,怎么加?谢谢了..
------解决方案--------------------------------------------------------
"这是一个数据绑定的方法,但因为访问的是每一列,因此有可能会造成超时的问题.. "
猜想你的这个超时不是因为访问每一列造成的,应该是你填充Dataset时造成的,可以设一下
SqlConnection.ConnectionTimeOut属性或
SqlCommand.CommandTimeOut
------解决方案--------------------------------------------------------
能否把DataSet添加到viewstate?这样有用吗?? ?
那恐怕不好使
另:
conn.close();怎么没有?
------解决方案--------------------------------------------------------
看贴出来的代码意思,每一行都要调用da.Fill(ds);
不能只Fill一次,遍历ComponentArt.Web.UI.Grid的行吗?
------解决方案--------------------------------------------------------
但因为访问的是每一列,因此有可能会造成超时的问题..
————————————————————————————————————————
一点都没有看懂这句话的意思。
如果说数据库连接应该如何写,你的代码可以为:
DataSet ds = new DataSet();
string sql = "sql语句 ";
using(SqlConnection conn = new SqlConnection( "连接字符串 "))
{
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds);
}
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
if ((byte)ds.Tables[0].Rows[i][ "IsDisplay "] == 0)
{
((ComponentArt.Web.UI.Grid)sender).Levels[0].Columns[i].Visible = false;
}
}
------解决方案--------------------------------------------------------
学会写Using结构化语句,你可以写较专业和可靠的程序——不用写很多废话就能提早、很可靠地关闭连接。