我正在尝试从 MySQL 数据库中获取表的主键。当我使用 MySQL ODBC 3.51 驱动程序时,下面的代码可以正常工作。当我更改代码以使用 MySQL ODBC 5.2 ANSI 驱动程序时,它不起作用。我还尝试了 MySQL ODBC 5.1 驱动程序。任何人都知道为什么我无法使用最新版本的 MySQL ODBC 驱动程序获取表的主键?
此代码有效并返回 DataTable 中的 PrimaryKey:
using (OdbcConnection connection = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=IP_Address;Database=DB_Name;User=username;Password=password;Option=3;"))
{
connection.Open();
DataTable dt = new DataTable();
using(OdbcCommand command = connection.CreateCommand())
{
command.CommandText = "SET SESSION sql_mode = 'ANSI';";
command.ExecuteNonQuery();
command.CommandText = "SELECT * FROM \"items\"";
using (OdbcDataAdapter adapter = new OdbcDataAdapter(command))
{
adapter.FillSchema(dt,SchemaType.Source);
}
}
connection.Close();
}
此代码不起作用 - DataTable 中未返回 PrimaryKey:
using (OdbcConnection connection = new OdbcConnection("Driver={MySQL ODBC 5.2 ANSI Driver};Server=IP_Address;Database=DB_Name;User=username;Password=password;Option=3;"))
{
connection.Open();
DataTable dt = new DataTable();
using(OdbcCommand command = connection.CreateCommand())
{
command.CommandText = "SET SESSION sql_mode = 'ANSI';";
command.ExecuteNonQuery();
command.CommandText = "SELECT * FROM \"items\"";
using (OdbcDataAdapter adapter = new OdbcDataAdapter(command))
{
adapter.FillSchema(dt,SchemaType.Source);
}
}
connection.Close();
}