各位高手,我用c#写了一个文件读写的程序,需求方希望我能把文件读取出来放到数据库库里,为了方便我用了VS自带的跟ACCSEE数据库连接的工具,也能顺利的将数据写入数据库,但是现在遇到问题了...当我想从数据库里面数据取出的时候遇到了两个问题:
1、我需要用到where子句去同一个城市的数据(即city=我需要的参数)我在配置SQL语句的时候不知道该怎么写
2、我想跳过这个,全部取出(select * from 表),不知道该怎么调用了,调用出来我用什么存储,存储完毕我取数据的时候应该如何一条一条取出
PS,好多代码网上也有,但是很是不清楚,我用了个实体类来存储数据,也想用泛型来存储,但是由于不会调用,也卡住了,求各位大哥大姐指导
DataStructTableAdapter data = new DataStructTableAdapter();//建立与数据库的连接对象

解决方案 »

  1.   

       初始化。
     SqlConnection conn = new SqlConnection("server=hui;database=sfz;uid=sa;pwd=hui");
                SqlCommand com = new SqlCommand(); 
                DataSet ds = new DataSet(); 
                SqlDataAdapter sda = new SqlDataAdapter();
                SqlCommandBuilder scb = new SqlCommandBuilder();  private void Form1_Load(object sender, EventArgs e)
            {            com.CommandText = "select * from stu_info";
                com.Connection = conn;
                
                sda.SelectCommand = com;
                addDataSet();
                dataGridView1.ReadOnly = true;
            }        private void addDataSet()
            { 
             
                scb.DataAdapter = sda;
           
                sda.Fill(ds, "stuInfo");
                dataGridView1.DataSource = ds;
                dataGridView1.DataMember = "stuInfo"; 
               
            }
      

  2.   

    补充一句,数据最终添加到dataset里了,你直接遍历ds.table里的数据就可以了
      

  3.   

    2楼,你这个不对呀,我用的是VS自带的数据库连接软件,是DataStructTableAdapter,你这个是SqlDataAdapter,不一样的,我那个连接字符串是编写好的,不是在代码里写的
      

  4.   

    LZ先读取数据放到datagridview中 然后在添加到数据库撒
      

  5.   

    读取EXCEL2007到datagridview
    -------------------------- public void EcxelToDataGridView(string filePath, DataGridView dgv)
            {
                dgv.Columns.Clear();
                dgv.DataSource = null;
                //根据路径打开一个excel文件并将数据填充到dataset中
                dgv.Columns.Add("Url", "网址");
                string strConn = @"Provider = Microsoft.Ace.OLEDB.12.0; Data Source = " + filePath + "; Extended Properties = 'Excel 12.0;HDR = Yes; IMEX=1'";
                OleDbConnection conn = new OleDbConnection(strConn);
                conn.Open();
                string strExcel = "";
                DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                string tableName = schemaTable.Rows[0][2].ToString().Trim();
                strExcel = "select * from ["+tableName+"]";
                OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, strConn);
                DataSet ds = new DataSet();
                ds.Clear();
                myCommand.Fill(ds, "table1");
                //根据DataGridView的列构造一个DataTable
                DataTable td = ds.Tables[0];
                try
                {
                    #region 小问题
                    //if (td.Columns.Count > 1)
                    //{
                    dgv.Rows.Clear();
                    dgv.Columns.Clear();
                    foreach (DataGridViewColumn dgvc in dgv.Columns)
                    {
                        if (dgvc.Visible && dgvc.CellType != typeof(DataGridViewCheckBoxCell))
                        {
                            DataColumn dc = new DataColumn();
                            dc.ColumnName = dgvc.DataPropertyName;
                            dc.DataType = dgvc.ValueType;
                            td.Columns.Add(dc);
                        }
                    }                //根据excel的行逐一对上面的构造的datatable的列进行赋值
                    DataRow dr = td.NewRow();
                    for (int i = 0; i < ds.Tables["table1"].Rows.Count; i++)
                    {
                        DataRow excelRow = ds.Tables["table1"].Rows[i];
                        for (int j = 0; j < td.Columns.Count; j++)
                        {
                            dr[j] = excelRow[j];
                            i++;
                        }
                    }
                    td.Rows.Add(dr);
                    dgv.DataSource = td;
                    #endregion
                }
                catch (Exception)
                {
                    MessageBox.Show("该表已存在你即将导入的excel文件...,请点击清空按钮重新导入...");
                    return;
                }
                finally
                {
                    conn.Close();
                }
            }
      

  6.   

    添加到ACCESS
    -----------public void AddData(string filePath)
            {
                string strConn = @"Provider = Microsoft.Ace.OLEDB.12.0; Data Source = " + filePath + ";Persist Security Info=False";            OleDbConnection conn = new OleDbConnection(strConn);
                string strSql = "select * from EKInfo";            OleDbDataAdapter oda = new OleDbDataAdapter(strSql, conn);
                DataSet ds = new DataSet();            conn.Open();
                oda.Fill(ds, "EKInfo");
                DataRow dr = ds.Tables["EKInfo"].NewRow();
                dr["Url"] = "http://www.baidu.com";
                dr["AddTime"] = DateTime.Now.ToShortDateString();
                OleDbCommandBuilder cb = new OleDbCommandBuilder(oda);
                oda.Update(ds, "EKInfo");
                ds.AcceptChanges();            oda.Dispose();
                conn.Dispose();
                conn.Close();
            }