這是一個奇怪的問題,我希望我能正確構建它。我正在使用Visual Studio DataSet設計器來創建SQL表適配器,以將我的項目鏈接到SQL服務器。連接字符串是通過ODBC條目。DataSet Designer爲不同的表創建不同的CommandText
所有表都有默認查詢,如更新和插入。在dataset.Designer.cs文件中,這些命令是自動生成的。這裏有一個例子:
this._adapter.DeleteCommand = new global::System.Data.Odbc.OdbcCommand();
this._adapter.DeleteCommand.Connection = this.Connection;
this._adapter.DeleteCommand.CommandText = "DELETE FROM [pftestbench].[dbo].[TestData_TestGroupInstrument] WHERE (([TestGroup" +
"RecordNumber] = ?) AND ([InstrumentSerial] = ?))";
this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text;
this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.Odbc.OdbcParameter("Original_TestGroupRecordNumber", global::System.Data.Odbc.OdbcType.BigInt, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "TestGroupRecordNumber", global::System.Data.DataRowVersion.Original, false, null));
this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.Odbc.OdbcParameter("Original_InstrumentSerial", global::System.Data.Odbc.OdbcType.NVarChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "InstrumentSerial", global::System.Data.DataRowVersion.Original, false, null));
我有興趣在CommandText行:
this._adapter.DeleteCommand.CommandText = "DELETE FROM [pftestbench].[dbo].[TestData_TestGroupInstrument] WHERE (([TestGroup" +
"RecordNumber] = ?) AND ([InstrumentSerial] = ?))";
你可以看到這是如何依賴於數據庫名稱,它是如何的情況下,不希望更改數據庫的名稱。現在,除了其中一個表格之外,所有表格都指定了數據庫名在一個表中沒有,有一個的CommandText線是這樣的:
this._adapter.DeleteCommand.CommandText = @"DELETE FROM [TestData_Instrument] WHERE (([Serial] = ?) AND ((? = 1 AND [Model] IS NULL) OR ([Model] = ?)) AND ((? = 1 AND [CalibrationDue] IS NULL) OR ([CalibrationDue] = ?)) AND ((? = 1 AND [Trace] IS NULL) OR ([Trace] = ?)) AND ((? = 1 AND [Manufacturer] IS NULL) OR ([Manufacturer] = ?)))";
最後一個是什麼,我會想理想的,因爲它是數據庫名稱無關。這就是爲什麼我使用ODBC開始,但顯然我沒有做正確的事情。
我的問題是,我如何確保所有這些條目將獨立於數據庫名稱?
你是什麼意思確保數據庫名稱是獨立的,基於你發佈的內容,沒有辦法可以在[TestData_Instrument]例如vs [[pftestbench] dbo]。[TestData_TestGroupInstrument]指向兩個不同的表格。你目前是否有任何錯誤或問題..? – MethodMan
對不起,讓我澄清。 [TestData_TestGroupInstrument]和[TestData_Instrument]都是[pftestbench]數據庫中的表格。所以基本上,我不想[pftestbench]出現,就像[TestData_Instrument]的情況一樣。 – sbenderli