OleDbDataReader oleDbDataReader = oleDbCommand.ExecuteReader(CommandBehavior.KeyInfo);
DataTable dataTable = oleDbDataReader.GetSchemaTable();
Run Code Online (Sandbox Code Playgroud)
GetSchemaTable()工作怎么样?
它在RDBMS中从何处获取信息?
我正在尝试获取每列的数据类型来进行一些验证\ni已经尝试过,getSchemaTable但它只提供了没有值的表的架构。
例如,我的数据库中有一个表和一个列名:id_declarant。\n我想从 中检索值的数据类型和大小id_declarant。
这是代码:
\n\ncomm.Connection=new SqlConnection(connectionString);\nString sql = @"\n SELECT * \n FROM id_declarant,declarant\n WHERE (declarant.Nom_pren_RS=\'" + textBox1.Text + "\') \n and (id_declarant.mat_fisc=declarant.mat_fisc) "; \ncomm.CommandText = sql;\ncomm.Connection.Open();\nstring mat_fisc;\nstring cl\xc3\xa9_mat_fisc;\nstring categorie ;\nstring num_etab_sec ;\nstring activite;\nStringBuilder sb = new StringBuilder();\nString Nom = textBox1.Text;\nusing (SqlDataReader reader = comm.ExecuteReader())\n{\n while (reader.Read())\n {\n //here i want to know how to retrieve the reader[0].Type and Size to do the verification \n mat_fisc = reader[0].ToString();\n cl\xc3\xa9_mat_fisc = reader["cl\xc3\xa9_mat_fisc"].ToString();\n …Run Code Online (Sandbox Code Playgroud) 我是一个新手,我正在尝试从我的数据库中的某些表中检索列NAme,大小(最大legth)和DataType,当我执行它时,以下代码期望它显示所有列类型和名称(我没有找到如何引用Size,我使用了ColumnSize,但据说DataColumn不包含此方法的定义)但是在执行它时,它只显示:IsColumnSetSystem.Boolean这是代码:
private void button1_Click(object sender, EventArgs e)
{
string EF = textBox1.Text;
try{
//SqlDataAdapter adapter = SetupDataAdapter("SELECT * FROM id_declarant");
SqlCommand comm = new SqlCommand();
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=declaration;Integrated Security=True";
comm.Connection=new SqlConnection(connectionString);
String sql = @"SELECT *
FROM id_declarant,declarant
WHERE (declarant.Nom_pren_RS='" + EF + "') and (id_declarant.mat_fisc=declarant.mat_fisc) ";
comm.CommandText = sql;
comm.Connection.Open();
SqlDataReader reader = comm.ExecuteReader();
DataTable schemaTable = reader.GetSchemaTable();
foreach (DataRow row in schemaTable.Rows)
{
foreach (DataColumn column in schemaTable.Columns)
{
System.IO.File.WriteAllText(@"C:\Users\Manuela\Documents\GL4\WriteLines.txt", column.ColumnName + column.DataType );
} …Run Code Online (Sandbox Code Playgroud)