Zip decimal(5)
ODBC dBaseドライバが気に入らないため、問題の原因はです。頭のてっぺんから、そしてグーグルで簡単に調べた後、私はそれが許容できる構文を思い付くことができませんでした。次のように、代わりにOleDbプロバイダーを使用すると、非常に楽しく受け入れられます。
using (var dBaseConnection = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0; " +
@" Data Source=C:\Users\RobertWray\Documents\dBase; " +
@"Extended Properties=dBase IV"))
{
dBaseConnection.Open();
string createTableSyntax =
"Create Table Person " +
"(Name char(50), City char(50), Phone char(20), Zip decimal(5))";
var cmd = new OleDbCommand(createTableSyntax, dBaseConnection);
cmd.ExecuteNonQuery();
}
ただし、1つの質問: Zip列を小数として作成してもよろしいですか?米国居住者ではないので、この情報に100%自信はありませんが、ウィキペディアによると、郵便番号は。で始めることができ0
ます。それらを数値データ型として格納すると、それを正確に表すことができなくなります。
ODBCを介してテーブルを作成するための私のコード:
using (var dBaseConnection = new OdbcConnection(@"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=C:\Users\RobertWray\Documents\dBase;"))
{
dBaseConnection.Open();
string str0 = "Create Table Person2 (Name char(50), City char(50), Phone char(20))";
var cmd = new OdbcCommand(str0, dBaseConnection);
cmd.ExecuteNonQuery();
}