string tablename="";//表名
string vSQL = "SELECT A.name FROM syscolumns A INNER JOIN sysobjects B ON A.id = B.id WHERE (B.name = '"+tablename+"') ";
SqlConnection conn=new SqlConnection("Initial Catalog=customer;Data Source=GYLCPJ;Integrated Security=SSPI;");
conn.Open();
SqlDataAdapter comm = new SqlDataAdapter(vSQL, c1.ConnectionDataAccess());
DataSet ds = new DataSet();
comm.Fill(ds, tablename);
this.dataGrid1.DataSource=ds.Tables[0];
请问大家,我输出时,所有的行不是按表的顺序,而是按字母的顺序排列,为什么?帮帮我吧?!?!
分不够再加
string vSQL = "SELECT A.name FROM syscolumns A INNER JOIN sysobjects B ON A.id = B.id WHERE (B.name = '"+tablename+"') ";
SqlConnection conn=new SqlConnection("Initial Catalog=customer;Data Source=GYLCPJ;Integrated Security=SSPI;");
conn.Open();
SqlDataAdapter comm = new SqlDataAdapter(vSQL, c1.ConnectionDataAccess());
DataSet ds = new DataSet();
comm.Fill(ds, tablename);
this.dataGrid1.DataSource=ds.Tables[0];
请问大家,我输出时,所有的行不是按表的顺序,而是按字母的顺序排列,为什么?帮帮我吧?!?!
分不够再加
列:Name
--------------------
值:C_Id
C_No
C_Name
C_Note
C_IsDeleted
C_OperatorNo
C_ModifyDateTime
C_bl
但是输出后是:
列:Name
---------------------
C_bl
C_Id
C_IsDeleted
C_ModifyDateTime
C_No
C_Name
C_Note
C_OperatorNo
请高手帮我看看,求求了!!!
//获得表结构
public static DataTable GetTableColumn(string varTableName)//varTableName:表名
{
DataTable dt = new DataTable(); try
{
Cnn = new OleDbConnection(CnnString);
Cnn.Open();
dt = Cnn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,new object[]{null,null,varTableName,null});
}
catch(Exception ex)
{
throw ex;
}
finally
{
Cnn.Close();
} return dt;
}//获得字段名的代码
DataTable tempDt = GetTableColumn(strTableName);//strTableName:表名
foreach ( DataRow dr in tempDt.Rows )//每条记录就是表的一个字段的相关信息
{
//去掉DataTable中的无用的信息,只获得字段名信息
foreach ( DataColumn col in tempDt.Columns )
{
if ( col.Ordinal == 3 ) //列位置3存放的是表的列名
{
String ColName = dr[col].ToString();
}
}
}
from syscolumns c join sysobjects o on o.id=c.id
where o.name='表名'或者select c.*
from syscolumns c join sysobjects o on o.id=c.id
where o.name='表名'
order by c.colid