내부 도구 용으로 만든 12 개의 다른 항목과 같은 매우 단순한 형태이지만 "OleDbParameter with ParameterName '@lookup'은이 OleDbParameterCollection에 포함되어 있지 않습니다. . "ParameterName이있는 OleDbParameter는이 OleDbParameterCollection에 포함되어 있지 않습니다.
유일한 차이점은 아마도 이것의 핵심이지만, 나는 대답을 모르겠다는 연결 문자열입니다. 그래서 내 연결 문자열을 쉽게 아래와 같이 내 비주얼 스튜디오 2008에 구성되어있는 윈도우 2008 R2 서버에 SQL 2008 서버를 사용하고있다 : 그러나
<connectionStrings>
<add name="DatasourceName" connectionString="server=servername;database=databasename;user=username;password=password;" providerName="System.Data.SqlClient"/>
</connectionStrings>
, 난 여전히 VS 2008를 사용하고 있지만 ' 내 데이터 소스에 대한 SQL 2012 서버에 연결 m은 그래서 연결 문자열 변경했다 :이 오류를 본 적이 있기 때문에 궁금 그래서
<connectionStrings>
<add name="server2012name" connectionString="Provider=SQLNCLI11.1;Data Source=ServerName;Persist Security Info=True;Password=password;User ID=userid;Initial Catalog=catalog"
providerName="System.Data.OleDb" />
</connectionStrings>
을하면 내가 작동하지 않습니다 사용하고 코드 어떤 이유로 든 oledb 연결. 여기
protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters["@lookup"].Value = lookup.Text.ToString();
}
영문 코드 : 코드의 잘못된 부분은 코드 숨김에
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MyString %>"
ProviderName="<%$ ConnectionStrings:MyString.ProviderName %>"
SelectCommand="SELECT [Beneficiary First Name] AS firstname
,[Beneficiary Last Name] AS lastname
,[Beneficiary Date of Birth] AS dob
,[Address Line 1] AS [address]
,[Beneficiary Encounter Date] AS encdate
,[Beneficiary Data Sharing Preference Code] AS shareprefcode
,[Beneficiary Data Sharing Decision Mechanism Code] AS decmechcode
,[Beneficiary Alcohol and Drug Treatment Data Sharing Mechanism Co] AS damechcode
,[MRN]
,[Beneficiary HICN] AS hicn
FROM [database].[dbo].[table]
WHERE [MRN] = @lookup"
onselecting="SqlDataSource1_Selecting"
>
<SelectParameters>
<asp:Parameter Name="lookup" />
</SelectParameters>
</asp:SqlDataSource>
내가 다른 어셈블리를 포함 필요하십니까은? 다른 명령을 사용하여 매개 변수를 추가합니까?
나는 몇 시간 동안 이것을 봤고 내가 찾은 것을 읽었지만 아무 것도 이것과 관련이없는 것으로 보였다. 이 e.Command.Parameters 행을 권장하면 오류가 사라지지만 쿼리는 아무 것도 반환하지 않습니다.
모든 안내에 감사드립니다.
EDIT 불행히도,이 사람은 답을 얻지 못할 것 같습니다. 이 모든 것이 무엇인지 아는 사람이 올 경우에 대비하여 여기에 조금 더 추가 할 것입니다.
저는 OleDbParameters에 관해 모두 읽었으며 대략 옳은 길 같습니다. 코드 숨김을 약 50 가지로 변경했습니다.
protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
OleDbParameter fnParam = new OleDbParameter("@lookup", OleDbType.VarChar, 20);
fnParam.Value = lookup.Text;
e.Command.Parameters.Add(fnParam);
}
그리고 원래의 오류를 지나서 관리 할 수있었습니다. 매개 변수 선언을 제거하기 위해 ASPX를 변경했습니다. SQL 쿼리의 매개 변수를 물음표 (no go)로 변경했습니다. 이 시점에서 어떤 종류의 오류 또는 메시지도 표시되지 않습니다. 내 SQL 프로파일 러 추적에서는 SQL Server를 전혀 사용하지 않습니다. 아무것도하지 않는 것뿐입니다.
유사 콘텐츠 중 일부에서는 실제로 데이터 형식이 일치하지 않는 오류가 발생했지만 OleDbType에 적합한 데이터 형식으로 텍스트 상자 값을 변경하는 방법을 찾지 못했습니다.
오류 메시지는 매우 분명하다. 그 명령 매개 변수 컬렉션에는 @lookup이라는 OleDbParameter가 없습니다. 문제는 해당 마크 업을 질문에 추가 할 수있는 경우 SqlDataSource1을 정의하는 ASPX 코드에 있습니다. – Steve
해당 데이터 소스에 대한 선택 명령은 무엇입니까? –
OleDb 매개 변수에는 이름이 있습니까? 그들은 단지 자리 표시 자 (?)가 아닌가? –