我很高兴为我的应用程序编写代码,但我遇到了这个让我有点害怕的问题。
我有一个 SQLite db 文件,当我尝试使用 OdcbDataReader 读取表并使用 DataTable.Load 将其加载到表中时,根据我正在处理的应用程序,我会在列名上得到不同的结果。
有时它返回 table_name.column_name,有时它只返回 column_name。
代码只有这样:
public DataTable GetTable(string table_name)
{
table = null;
if (conn_str != null)
{
try
{
using (OdbcConnection conn = new OdbcConnection(conn_str.ToString()))
{
StringBuilder query = new StringBuilder();
query.Append("SELECT * ");
query.Append("FROM [");
query.Append(table_name + "]");
using (OdbcCommand cmd = new OdbcCommand(query.ToString(), conn))
{
conn.Open();
table = new DataTable();
using (OdbcDataReader dr = cmd.ExecuteReader())
{
DataSet ds = new DataSet();
ds.EnforceConstraints = false;
ds.Tables.Add(table);
table.Load(dr);
}
}
}
}
catch (Exception ex)
{
Debug.Print(ex.Message);
table = null;
}
}
return table;
}
使用的连接字符串完全相同:
“DRIVER={SQLite3 ODBC 驱动程序};DATABASE=databesename.db3;”
任何想法为什么会发生这种情况?