C# 编写猜单词小程序遇到的问题

whsaclark 2012-06-12 08:54:59
我在用 Microsoft Visual Studio 2010 编写一个猜单词 的程序(windows 窗体应用程序)。
建了一个数据库 存单词,
现在我想从数据库里随机取出一个单词,但我不知道怎么写代码
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
只在此山中 2012-06-12
  • 打赏
  • 举报
回复
用随机数,如MSSQL数据库,单词未排序,先取出记录总数max,如max=20000个单词.
Random rand1 = new Random();
int pos = rand1.Next(1,max); //生成随机的那一行,也就是1到20000中随机取1个

例:执行下面sql语句得到数据库中那一行的单词:
"select top 1 单词 from (select top " + pos.ToString() + " 单词 from 单词表 order by 单词) tablea order by 单词 desc"
如果数据库排序了不用取那么多速度会更快.
熙风 2012-06-12
  • 打赏
  • 举报
回复
   //属性:数据库链接对象
private static SqlConnection conn;
public static SqlConnection Conn
{

get
{
try
{

string connstr = "server=.;database=Driver;User ID=sa;Password=123456";
if (conn == null)
conn = new SqlConnection(connstr);
if (conn.State == ConnectionState.Closed)
conn.Open();
if (conn.State == ConnectionState.Broken)
{
conn.Close();
conn.Open();
}
return conn;

}
catch (Exception ex)
{

throw;
}
}
}
//返回首行首列
public static object GetScalar(string SqlStr)
{
SqlCommand cmd = new SqlCommand(SqlStr, Conn);
object obj = cmd.ExecuteScalar();
conn.Close();
return obj;
}
string sql=select top 1 word from tablename order by newid()
txtWord.Text=GetScalar(sql).toString();
ParanoidKing 2012-06-12
  • 打赏
  • 举报
回复

SELECT TOP(1)[单词] FROM [单词表] ORDER BY NEWID()
yuandonghuia 2012-06-12
  • 打赏
  • 举报
回复
用随机数去.C#里面有Random
熙风 2012-06-12
  • 打赏
  • 举报
回复
select top 1 * from tablename order by newid()

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧