如何在sql server中获取更新的表名?

时间:2013-11-16 12:19:29

标签: c# sql sql-server

目前我在数据库中获取所有表名,并添加到List<string> sakalistbox1

        listBox1.Items.Clear();
        fare = bag.GetSchema("Tables");            
        foreach (DataRow zil in fare.Rows)
        {
           saka.Add(zil["table_name"].ToString());
           listBox1.Items.Add(zil["table_name"].ToString());

        }

是否可以只获取更新的表名?我的意思是列“stts”可以添加3个值(0,1,2) 0=unread,1=read;2=read并更改,那么我们可以获得在其“stts”列中具有“0”值的表吗?还是有另一种方法可以做到这一点?

另一个问题(可选:)):我在fill()事件下有listBox1_DoubleClick。同样,我们可以使用仅在特定的表行中填充dgv,该行在“stts”列中具有“1”值吗?

        private void fill()

        sqlAdapter = new SqlDataAdapter("SELECT * FROM " + saka[listboxselectedindex], conn);
        dataset = new DataSet();
        sqlAdapter.Fill(dataset, saka[listboxselectedindex]);
        datagridview1.DataSource = null;
        datagridview1.DataSource = dataset.Tables[saka[listboxselectedindex]];

更新:(这样做有效吗?)

               foreach (DataRow zil in fare.Rows)
        {
            saka.Add(zil["table_name"].ToString());
          //  listBox1.Items.Add(zil["table_name"].ToString());                
        }            
        for (int n = 0;n  < saka.count; n++)
        {                
                sqlAdapter = new SqlDataAdapter("select * from " + saka[n] + " where durum = '4'", conn);
                DataSet astana = new DataSet();                    
                sqlAdapter.Fill(astana, saka[n]);
                if (astana.Tables[0].Rows.Count > 0)
                {
                    listBox1.Items.Add(saka[n]);
                }
                astana = null;          


        }

2 个答案:

答案 0 :(得分:0)

是您的项目需要SqlDataAdapter吗? 如果没有,可能更容易使用实体框架,只需要做一些工作就可以对项目进行这些更改

这应该是两者的解决方案:

dataset.Tables[saka[listboxselectedindex]].AsEnumerable().Where(row => row["ColumnName"] == 1).ToList(); 

请注意,“ColumnName应更改为Column的名称以使其正常工作

答案 1 :(得分:0)

试试这个:

sqlAdapter = new SqlDataAdapter("SELECT * FROM " + saka[listboxselectedindex]+" where stts=@sttsValue", conn);
sqlAdapter.SelectCommand.Parameters.AddWithValue("@sttsValue",1);
            dataset = new DataSet();
            sqlAdapter.Fill(dataset, saka[listboxselectedindex]);
            datagridview1.DataSource = null;
            datagridview1.DataSource = dataset.Tables[saka[listboxselectedindex]];