1

私は SQL Server 2005 データベースを使用しています - 私のソフトウェア (OS-XP) のサーバーです。サーバーを SQL Server 2008 (OS-windows 7) に変更したら、ソフトウェアが動作しなくなりました。

プログラムをデバッグしたところArray index out of bounds exception、コードの一部が見つかりました。そのコードを変更すると、問題なく動作していました。誰でも問題の理由を教えてもらえますか?

String cnnStr = String.Format("Data Source = {0}; Initial Catalog = {1}; Integrated Security = SSPI; persist security info=False; Trusted_Connection=Yes",ServerName, Databasae);

sqlConnection = new SqlConnection(cnnStr);
sqlConnection.Open();

元のコード

 Server server = new Server(new ServerConnection(sqlConnection));
 Database db = server.Databases[Databasae];
 Table Table = new Table(db, TableName);
 Column TimeColumn = new Column(Table, "DateTime");
 TimeColumn.DataType = DataType.DateTime;
 TimeColumn.Nullable = false;
 Column ValueColumn = new Column(Table, "Value");
 ValueColumn.DataType = DataType.Float;
 ValueColumn.Nullable = false;
 Table.Columns.Add(TimeColumn);
 Table.Columns.Add(ValueColumn);
 Table.Create();

新しいコード

 StringBuilder query = new StringBuilder();
 query.Append("CREATE TABLE ");
 query.Append(TableName);
 query.Append(" (  [DateTime] DateTime , Value float(10) )");

 SqlCommand sqlQuery = new SqlCommand(query.ToString(), sqlConnection);
 SqlDataReader reader = sqlQuery.ExecuteReader();

 reader.Close();
4

1 に答える 1

3

SQL 2005 を使用しなくなったため、SMO SDK を SQL 2008 バージョンに更新し、2005 の参照をすべて削除する必要があります。

ここでこの件についてもう少し読むことができます:

http://msdn.microsoft.com/en-us/library/ms162129.aspx

于 2012-09-12T08:23:02.810 に答える