none
如何从数据库里读取一条记录 RRS feed

答案

  • 你的意思是不是随机的读取就可以,只是不能重复,是这个意思吧!
    如果是这样,建议使用Random类生成随机数,这个数作为读取数据的索引,这样来读取数据行,读取了一行,就把这个索引记录在一个数组里,下次生成索引的时候和这个数组里的所有已经读取过的索引比较,如果这个新生成的索引没有读取过,就读取这个索引的那一行数据,否则就重新生成索引,直到生成一个没有读取过的索引!
    周雪峰
    2009年8月2日 13:45
    版主

全部回复

  • 您好,代码摘自msdn:
    public DataSet CreateCmdsAndUpdate(string connectionString,
        string queryString) //queryString是查询的sql语句
    {
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.SelectCommand = new OleDbCommand(queryString, connection); OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

            connection.Open();

            DataSet customers = new DataSet();
            adapter.Fill(customers); //读取数据到customer中

            //在这里写修改的代码

            adapter.Update(customers);

            return customers;
        }
    }

    具体请参考:http://msdn.microsoft.com/zh-cn/library/at8a576f.aspx
    2009年8月1日 13:54
  • 你好!
         这样试试:
    private static void CreateCommand(string queryString,
        string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(
                   connectionString))
        {
            connection.Open();
    
            SqlCommand command = new SqlCommand(queryString, connection);
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}", reader[0]));
            }
        }
    }

    周雪峰
    2009年8月1日 14:19
    版主
  • 还有其它的方法吗?如果这样做,记录很多的话,运行会很慢的,是不是?

    2009年8月2日 13:31
  • 我是想,当用户提交请求时,从数据库中读取一条记录给用户,用户的每次请求,都返给用户不同的记录,读取过的记录,不再读娶
    2009年8月2日 13:34
  • 我是想,当用户提交请求时,从数据库中读取一条记录给用户,用户的每次请求,都返给用户不同的记录,读取过的记录,不再读娶

    这要看您传递的Sql语句是什么。

    做一般的管理系统,性能上基本不用担心。当然我不清楚您要做的系统的使用场景是什么?可以模拟真实的用户使用场景来做性能测试。
    2009年8月2日 13:40
  • 你的意思是不是随机的读取就可以,只是不能重复,是这个意思吧!
    如果是这样,建议使用Random类生成随机数,这个数作为读取数据的索引,这样来读取数据行,读取了一行,就把这个索引记录在一个数组里,下次生成索引的时候和这个数组里的所有已经读取过的索引比较,如果这个新生成的索引没有读取过,就读取这个索引的那一行数据,否则就重新生成索引,直到生成一个没有读取过的索引!
    周雪峰
    2009年8月2日 13:45
    版主
  • 谢谢!我是这样写的,你帮我看看,我发布成站点后数据库就不对了,在VS中测试正常!

    using System;
    using System.Configuration;
    using System.Data;
    using System.Data.OleDb;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            OleDbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\我的文档\Visual Studio 2008\card\App_Data\card.mdb");
            thisConnection.Open();
            OleDbDataAdapter thisAdapter = new OleDbDataAdapter("SELECT * FROM card where 状态=true",thisConnection);
            OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);
            DataSet thisData = new DataSet();
            thisAdapter.Fill(thisData, "card");
            Label1.Text = thisData.Tables["card"].Rows[0]["卡号"].ToString();
            thisData.Tables["card"].Rows[0]["状态"] = "false";
            thisAdapter.Update(thisData, "card");
            thisConnection.Close();
        }
    }


    我如何才能把数据库的路径改为相对路径呢?

    2009年8月2日 14:37