Q1 - 런타임 아래의 코드는, 두 호환 형식 사이의 값으로 변환에서 : I있어
<SelectParameters>
<asp:Parameter Name="City" Type="Int32" />
</SelectParameters>
protected void SqlDataSource2_Selecting(object sender,
SqlDataSourceSelectingEventArgs e)
{e.Command.Parameters["@City"].Value = "100";}
예외 :
'전환 nvarchar 값 'Seattle'을 데이터 형식 int로 변환 할 때 오류가 발생했습니다. "
) 위의 예외는 런타임에서 String 유형의 값을 Int32 유형의 값으로 변환 할 수 있으므로예외가 SqlServer에서 발생했음을 나타냅니다. 문자열 및 INT32가 호환되지 않는 유형이기 때문에
B), 왜 런타임 첫 번째 장소에서 INT32에 문자열에서 변환을 수행 했습니까?
우리가 호환되지 않는 유형 다루고있는 것은 그 응용 가능성이 가장 높은 방법 컴파일러 similary 버그를 가지고있다 "실현" 런타임을한다는 사실은 함께 (아래 코드)를 다루는 사용자들은 "실현"하지 않습니다 이 개 호환되지 않는 유형 :
String s = ”something”;
int i = (int)s; //error
Q2 :
A) 공공 무효의 GetEmployee (int EmployeeID);
<asp:ObjectDataSource SelectMethod=”GetEmployee” …>
<SelectParameters>
<asp:ControlParameter Name = ”EmployeeID” ...>
</SelectParameters>
의 경우 직원 ID 매개 변수가 NULL 어떤 이유로, ObjectDataSource를 제로로 널 변환 GetEmployee라는() 방법에 인수로 전달됩니다합니다.
런타임이 이러한 변환을 수행하는 이유는 무엇입니까? 예외를 던지는 것이 더 의미가 없습니까?
B)는 "데이터 필드가 데이터 소스에 업데이트 될 때 빈 문자열 값이 자동으로 null로 변환할지 여부를 지정 ConvertEmptyStringToNull 속성을 사용합니다."
을 내가 꽤 이해가 안 돼요 이 속성의 유용성. 빈 문자열은 소스의 데이터 필드에 null이 삽입되기를 원한다는 것을 나타 냅니까? 이 데이터 필드가 String 유형이라고 가정합니다. 그렇다면 ConvertZeroInt32ToNull 등도 없습니까?
Q3 :
<asp:SqlDataSource ID="sourceEmployees" runat="server"
ProviderName="System.Data.SqlClient"
ConnectionString="<%$ ConnectionStrings:Northwind %>"
SelectCommand="SELECT EmployeeID, FirstName,LastName,
Title, City FROM Employees WHERE [email protected]">
<SelectParameters>
<asp:Parameter Name="City"/>
</SelectParameters>
</asp:SqlDataSource>
A) 나는 당신이 형식 매개 변수 예 "시"는 수를 의미 유형 객체의 자동입니다있는 지정하지 않는 경우 가정 나중에 모든 유형의 값이 지정됩니다. 따라서 "City"가 나중에 (예 :, SqlDataSource2_Selecting() 이벤트 처리기 내에서) 값이 잘못 지정된 경우이 잘못된 할당은 SQL 서버에서만 감지되며 Sql 서버는 오류를보고합니다 웹 서버로 돌아 가기)?
B) 우리 형 NVARCHAR의 SqlParameter에 인스턴스 (20)를 생성하고 저장 과정이 매개 변수를 통과 원하는 경우 프로 시저이 파라미터 단지 값을 전달 ADO.NET 것 또는 어떻게 든이 매개 변수의 정확한 유형을 프로 시저에 알립니다 ( 은 NVarChar (20) 임).
고맙습니다
신의 사랑을 위해 다음 질문을 분리하십시오! –
여러 스레드가있는 포럼을 스팸하는 것보다 한 스레드에서 여러 질문을하는 것이 더 바람직하다고 생각했습니다. 하지만 그게 나에게 더 많은 답변을 얻을 수 있다면 그들을 분리합니다 – SourceC
정말 같은 질문 – gbn