我才接触c#不久,现在是一边实习工作一边在学习,有很多挺简单但我不懂的地方,比如现在这个问题
一个项目,做了一个winform界面,然后要连数据库从里面查找数据,可是我不知道怎么查找,查找数据库的代码我已经写完了,那我应该把这代码放在什么地方呢,或者说是放在什么事件里呢,这个我不明白,希望清楚的能给我讲下,再你们看来可能挺简单的问题,但对现在的我来说就是不明白...

解决方案 »

  1.   

    窗体初始化显示则放在form_load
      

  2.   

    你做个简单例子吧
    FORM1窗体中放一button1,datagridview1
    button1事件中
    SqlConnection connection=new SqlConnection("server=.;database=数据库;user id=sa;password=sa");
    SqlCommand select=new SqlCommand(select * from 表名);
    SqlDataAdapter adapter=new SqlDataAdapter();
    adapter.SelectCommand=select;
    DataSet ds=new DataSet();
    adater.Fill(ds);
    dataGridView1.DataSource=ds.table[0];
    就会在datagridview中显示数据表中记录了 
      

  3.   

     private void button1_Click(object sender, EventArgs e) //Button单击事件  { //dataGridView1为你的DataGridView控件  this.dataGridView1.DataSource = GetData().DefaultView; } private DataTable GetData() { DataTable dtData = new DataTable(); try  { using (SqlConnection thisConnection = new SqlConnection( @"Data Source=.;Initial Catalog=Northwind;Integrated Security=True")) //你的SQL语句  { using (SqlDataAdapter thisAdapter = new SqlDataAdapter( "SELECT * FROM Customers", thisConnection)) //你的查询语句  { thisAdapter.Fill(dtData); } thisConnection.Close(); } } catch (Exception ex) { dtData = null; Console.WriteLine(ex.Message); } return dtData; }
      

  4.   

    假设这是一个需要不停的,比如每隔1秒钟向数据库查询有没有我所需要的信息,如果有我就接收过来显示在我的界面上,这么一个事件的话那连接数据库的代码应该写在哪呢?还是form的form_load事件里么
      

  5.   


    刚才代码没贴好, 再发一遍:        private DataTable GetData()
            {
                DataTable dtData = new DataTable();
                    using (SqlConnection thisConnection = new SqlConnection(
                       @"Data Source=HUI\SQLSERVER;Initial Catalog=Northwind;Integrated Security=True"))    //你的连接语句
                    {
                        using (SqlDataAdapter thisAdapter = new SqlDataAdapter(
                            "SELECT * FROM Customers", thisConnection))                                     //你的SQL语句
                        {
                            thisAdapter.Fill(dtData);
                        }
                        thisConnection.Close();
                    }
                return dtData;
            }
            private void Form1_Load(object sender, EventArgs e) //窗体的Load单击事件
            {
                //dataGridView1为你的DataGridView控件
                this.dataGridView1.DataSource = GetData().DefaultView;
            }
      

  6.   

    用计时器试试了
    首先你在Form1_load(sender,e)
    {
         timer1.Interval = 1000;//1000毫秒
         timer1.Start();
    }
    然后在private void timer1_Tick(object sender, EventArgs e)
    {
         //调用查询数据库的语句
    }
      

  7.   

    用timer的事件了
    呵呵   每个多少时间重复查询就是了 
      

  8.   

    加载显示的话在form_load()中。如果是想通过某个按钮实现某个查询操作等功能,可以通过添加一个button按钮,然后双击button,在button_click()事件中来实现。
      

  9.   

    我写的查询数据库的类,如果有错的希望能帮帮忙
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.Data.OracleClient;/// <summary>
    /// Class1 的摘要说明
    /// </summary>    public class db
        {
            public db()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }
            private string m_strConnString;
            private SqlConnection m_connConnection1;
            private OracleConnection m_connConnection;
                    //open sqlserver
            public void Open(string strDataSource, string strInitialCatalog, string strUserID, string strPwd)//LKY(服务器名)192.168.0.211,数据库名trace,用户名wisefly,密码wisefly
            {
                m_strConnString = "Data Source=" + strDataSource + ";Initial Catalog=" + strInitialCatalog + ";User ID=" + strUserID + ";Password=" + strPwd;
                m_connConnection1 = new SqlConnection(m_strConnString);
                m_connConnection1.Open();
            }
            //open oracle
            public void OpenOracle()
            {
                string ConnectionString = "Data Source=fengshen;user=system;password=manager;";//写连接串 
                m_connConnection = new OracleConnection(ConnectionString);//创建一个新连接实例 
                try
                {
                    m_connConnection.Open();//打开连接
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                finally
                {
                    Console.WriteLine("连接完毕");
                }
            }        public OracleDataReader GetDataReader(string strCommandString)//用户DataReader读取数据
            {
                OracleCommand cmdCommand = new OracleCommand(strCommandString, m_connConnection);//创建Command对象
                OracleDataReader drDataReader = cmdCommand.ExecuteReader();
                //notice: drDataReader没有close
                return drDataReader;
            }        public int ExecuteSQL(string strCommandString)//执行sql语句,返回执行条数
            {
                OracleCommand cmdCommand = new OracleCommand(strCommandString, m_connConnection);
                int nAffected = cmdCommand.ExecuteNonQuery();
                return nAffected;
            }        public void Close()
            {
                m_connConnection.Close();
            }        public DataSet GetDataSet(string strCommandString, string strTableName)//取得数据集
            {
                OracleCommand cmdCommand = new OracleCommand(strCommandString, m_connConnection);//创建Command对象            OracleDataAdapter adAdapter = new OracleDataAdapter();
                adAdapter.SelectCommand = new OracleCommand(strCommandString, m_connConnection);            DataSet dsDataSet = new DataSet();
                adAdapter.Fill(dsDataSet, strTableName);            return dsDataSet;
            }        public DataView GetDataView(string strCommandString, string strTableName)//取得数据视图
            {
                DataSet dsDataSet = this.GetDataSet(strCommandString, strTableName);
                return new DataView(dsDataSet.Tables[strTableName]);
            }
        }
      

  10.   

    在winform中容易出现查询功能的地方都需要用到数据库连接。
    1.查询按钮
    2.form的load事件中用于第一次加载数据
    3.各种控件的事件中,比如text的focus事件等等。
    具体用到数据连接的地方看情况而定。不一定是非要写到load事件中。
      

  11.   

    连接字符串是错的,还有直接用SQLHELPER吧