有不对了为什么发上去的五个都是一样的??我这段代码里做了随机选数了为什么还一样呢??大家帮我看看~~~for (int j = 0; j < 5; j++) { OdbcDataReader data; data = cmd.ExecuteReader(); data.Read(); int count = Convert.ToInt32(data[0]); if (count <= 0) { MessageBox.Show("没有数据!"); return true; } Random ra = new Random(); int ret = ra.Next(count); data.Close(); cmd.CommandText = "SELECT * FROM smspgm1"; data = cmd.ExecuteReader(); data.Read(); //for (int i = 1; i < ret; ++i) //data.Read();
sb.Append( Convert.ToString(data["mobile"]));
Debug.WriteLine(ret); data.Close();
} textBox2.Text = sb.ToString(); }
把这个 Random ra = new Random(); 定义在for语句外面Random ra = new Random();for (int j = 0; j < 5; j++) { ... int ret = ra.Next(count); ... }
你完全可以用
StringBuilder 这样高性能的对象去处理经常变动的字符串对象,处理完了在赋值给TextBox,那样写性能肯定要优越很多。
s.Append("你的值");
textBox1.Text = s.ToString() ;
textbox.text += "\n";
textbox.text += "添加的内容"
那个方法只能写入一个,大家在往TextBox里写东西时,比如写入了ABC,那你在往里面写DEF的时候是覆盖了呢???还是在ABC之后接着输出呢???
肯定是覆盖吧,我的意思就是我不想覆盖他,我要写在上次操作写入文件的后面。这回大家明白了吧,谁有好的方法?
textbox.text += "\n";
textbox.text += "添加的内容";这样好点
{
OdbcDataReader data;
data = cmd.ExecuteReader();
data.Read();
int count = Convert.ToInt32(data[0]);
if (count <= 0)
{
MessageBox.Show("没有数据!");
return true;
} Random ra = new Random();
int ret = ra.Next(count); data.Close();
cmd.CommandText = "SELECT * FROM smspgm1";
data = cmd.ExecuteReader();
data.Read();
//for (int i = 1; i < ret; ++i)
//data.Read();
sb.Append( Convert.ToString(data["mobile"]));
Debug.WriteLine(ret);
data.Close();
}
textBox2.Text = sb.ToString();
}
定义在for语句外面Random ra = new Random();for (int j = 0; j < 5; j++)
{
...
int ret = ra.Next(count);
...
}