C#+ACCESS,怎样查询含有特定字段的表名?

我现在有个名为DTCS数据库,里面有很多相同结构的表,表中有一列学号,怎样查出 学号=2013121411的表名并返回
最新回答
夜雨入梦

2026-07-24 23:11:11

 using System.Data.OleDb
//... ...省略多余的
//拖一个comboBox1,一个textBox1
private void button1_Click(...)
{   
   
   OleDbConnection cnn=new OleDbConnection();     
   cnn.Connection="Privader=Microsoft.Jet.OLEDB.4.0;Data Source="+@ACCESS完整路径名;   
   try   
   {      
       cnn.Open();      
       Dataset ds=new DataSet();      
       string sql="Select * from 学生信息 where 学号='" + comboBox1.Text + "'";      
       OleDbDataAdapter sda=new OleDbDataAdapter(sql,cnn);      
       sda.Fill(ds);      
       if(ds.Tabels[0].Rows.Count>0)      
       {          
           textBox1.Text="学号:"+ds.Tables[0].Rows[0]["学号"].ToString()+"/r/t年龄:"+ds.Tables[0].Rows[0]["年龄"].ToString()+"/r/t电话:"+ds.Tables[0].Rows[0]["电话"].ToString();

       }   
   }   
   catch   
   {      
       MessageBox.Show("网络连接失败");   
   }   
   finnly   
   {      
       cnn.Close();  
   }
}

你在comboBox1里输入学号,button1点一下就OK

纸墨清香

2026-01-19 09:57:57

我的建议是,先获取数据中的所有表名,然后通过sql语句查询,流程如下
string[] tableNames=getTablenames();
string findTableName="";
foreath(string tablename in tabnames){
string sql=string.format("select 学号 from {0} where 学号=2013121411",tablename);
查询...
结果条数大于1
findTableName=tablename;
break;
}
return findTableName;