我想实现读一条记录
过了三秒在读下一条
同一个记录集怎么实现啊我现在是赋数组的
这样数据量大了肯定不行
//读取数据库给数组赋值
string strConnection = "user id=sa;password=nd;";
strConnection += "initial catalog=Wallpapers;Server=202.96.15.85;";
strConnection += "Connect Timeout=30";
SqlConnection objConnection = new SqlConnection(strConnection);
objConnection.Open();
string sqlSelect = "select url from tb_picture order by id";
SqlCommand sqlCmd = new SqlCommand(sqlSelect, objConnection);
SqlDataReader aReader = sqlCmd.ExecuteReader();
while (aReader.Read())
{
string aa = aReader["url"].ToString();
PicArray.Add(aa);
}
objConnection.Close();
过了三秒在读下一条
同一个记录集怎么实现啊我现在是赋数组的
这样数据量大了肯定不行
//读取数据库给数组赋值
string strConnection = "user id=sa;password=nd;";
strConnection += "initial catalog=Wallpapers;Server=202.96.15.85;";
strConnection += "Connect Timeout=30";
SqlConnection objConnection = new SqlConnection(strConnection);
objConnection.Open();
string sqlSelect = "select url from tb_picture order by id";
SqlCommand sqlCmd = new SqlCommand(sqlSelect, objConnection);
SqlDataReader aReader = sqlCmd.ExecuteReader();
while (aReader.Read())
{
string aa = aReader["url"].ToString();
PicArray.Add(aa);
}
objConnection.Close();
{
System.Threading.Thread.Sleep(3000);//加上这句
string aa = aReader["url"].ToString();
PicArray.Add(aa);
}
objConnection.Close();
if (aReader.Read() == true)
{
aReader.Read();
MessageBox.Show("有记录"+aReader["url"].ToString());
}我发现aReader.Read();竟然是跳到下一条的下一条
这是怎么回事
aReader一直连着数据库不放,别人要读怎么办
你最好把数据先成块读进内存,然后想什么时候读就什么时候读。
用Dataset吧
如果数据已经固定,只是想实现每隔三秒取一条数据的效果,建议用DataSet结合缓存。
需要循环的话,可以有很多种方法实现。例如:
bool blRead = true;
while(blRead)
{
System.Threading.Thread.Sleep(3000);
//你的处理程序或者数据读取过程
//如果有意外条件需要跳出
if (跳出条件== true)
{
blRead = false;
}
}
{
aReader.Read();
MessageBox.Show("有记录"+aReader["url"].ToString());
}我发现aReader.Read();竟然是跳到下一条的下一条
这是怎么回事
没有写错吧你这样实现不太好。
aReader一直连着数据库不放,别人要读怎么办
你最好把数据先成块读进内存,然后想什么时候读就什么时候读。
不是吧多个客户端不能连吗