SQL select 쿼리에 매개 변수를 전달하려고합니다. 어떤 이유로 입력 문자열이 올바른 형식이 아닙니다 ... 문자열을 datetime ...으로 변환 할 때 오류가 있습니까?
, 내가 노력할 상관없이, 내가 같은 오류가 점점 계속하지 :하지 corect 형식및 제안에 입력 문자열 : 날짜에 문자열을 변환 할 때 은 취하도록 문자열을 구문 분석 각 변수를 datetime 객체에 넣기 전의 날짜.
나는 무엇을 해야할지 모르겠다. 여기에 코드가 있습니다.
SQL 쿼리 :
ALTER PROCEDURE SearchAllPlayers
(
@personName,
@personPay,
@IDs
)
SELECT DISTINCT
person.personID, sports.sportsID, person.personName, person.personPay, sports.sport,
FROM sports INNER JOIN
person INNER JOIN
personSport ON personSport.personID = person.personID
INNER JOIN
personSport ON personSport.sportID = sports.sportsID
WHERE (person.personName LIKE '%' + @personName + '%')
AND
(person.personPay >= @personPay OR 0 = @personPay)
AND
(person.regDate >= { fn CURDATE() }
AND
(sports.sportID IN
(SELECT ID FROM dbo.fnSplitter(@IDs) AS fnSplitter_1) OR @IDs = 0)
코드 숨김 :이 보이지 않는다
protected void Button1_Click(object sender, EventArgs e)
{
searchGrid();
}
protected void searchGrid()
{
SqlConnection conn = new SqlConnection(connSTR);
com = new SqlCommand();
conn.Open();
com.Connection = conn;
com.CommandText = "SearchAllPlayers";
com.CommandType = CommandType.StoredProcedure;
string StringWithDelimiter = string.Empty;
for (int i = 0; i < DropDownCheckBoxes1.Items.Count; i++)
{
if (DropDownCheckBoxes1.Items[i].Selected)
StringWithDelimiter += DropDownCheckBoxes1.Items[i].Value + ";";
}
com.Parameters.Add("@personName", SqlDbType.VarChar).Value = personName.Text;
//next line is where I am having problems
com.Parameters.Add("@personPay", SqlDbType.Decimal).Value = ??????
com.Parameters.Add("@IDs", SqlDbType.VarChar).Value = StringWithDelimiter;
so far i've tried the following combinations, all to know avail.
com.parameters.add("@playerPay", sqldbtype.decimal).value = playerPayTextBox.Text;
내가 다음과 같은 오류가 작동하는 ". 오류 소수점 데이터 유형 NVARCHAR로 변환" 가
com.parameters.add("@playerPay", sqldbtype.decimal).value = playerPayTextBox.tostring();
내가 같은 오류가 발생합니다 : :
은 그럼 나는이 시도. "오류 소수점 데이터 유형 NVARCHAR로 변환" 가 의미가
는, 그럼 내가 시도 :
com.parameters.add("@playerPay", sqldbtype.decimal).value = decimal.parse(playerPayTextBox.tostring());
오류 : "입력 문자열의 형식이 잘못되었습니다." - 다음 날짜 시간 것 ...
com.parameters.add("@playerPay", sqldbtype.decimal).value = decimal.parse(playerPayTextBox.text);
오류 : "입력 문자열이 올바른 형식이 아닙니다." - 날짜 시간 것 ...
com.parameters.add("@playerPay", sqldbtype.decimal).value = convert.todecimal(playerPayTextBox.text);
오류 : "입력 문자열이 올바른 형식이 아닙니다." - 날짜 시간 것 ...
com.parameters.add("@playerPay", sqldbtype.decimal).value = convert.todecimal(playerPayTextBox.text);
오류 : "입력 문자열이 올바른 형식이 아닙니다." - 다음 날짜 일 ...
문제의 입력 문자열은 무엇입니까? –
분명히 playerPayTextBox.Text는 십진수를 나타내지 않습니다. 텍스트 상자에서 받아 들여야하는 값을 확인해야합니다. –
playerPayTextBox.Text의 값을 디버깅 해 보셨습니까? – artsylar