이것은 이상한 질문이며 제대로 짜 맞춰 주셨으면합니다. Visual Studio DataSet 디자이너를 사용하여 프로젝트를 SQL 서버에 연결하는 SQL 테이블 어댑터를 만듭니다. 연결 문자열은 ODBC 항목을 통해 전달됩니다.DataSet Designer가 서로 다른 테이블에 대해 서로 다른 CommandText를 만듭니다.
모든 테이블에는 update 및 insert와 같은 기본 쿼리가 있습니다. dataset.Designer.cs 파일에서이 명령이 자동 생성됩니다. 내가의 CommandText 라인에 관심이
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));
: 여기에 하나의 예입니다
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를 사용하여 시작하는 이유이지만, 나는 분명히 뭔가를하고있는 것이 아닙니다.
제 질문은 어떻게 이러한 모든 항목이 데이터베이스 이름에 독립적인지 확인하는 것입니다.
무엇을 게시했는지에 따라 데이터베이스 이름이 독립적이라는 것은 무엇을 의미합니까? 예를 들어 vs'[pftestbench]와 같이'[TestData_Instrument]'에 이름 충돌이있을 수는 없습니다. dbo]. [TestData_TestGroupInstrument]'두 개의 다른 테이블을 가리 킵니다. 현재 어떤 오류나 문제가 있습니까? – MethodMan
죄송합니다. 명확히 말씀 드리겠습니다. [TestData_TestGroupInstrument]와 [TestData_Instrument]는 [pftestbench] 데이터베이스의 두 테이블입니다. 기본적으로 [TestData_Instrument]의 경우처럼 [pftestbench]가 나타나기를 원하지 않습니다. – sbenderli