Рейтинг:
0
Garth J Lancaster
Ну, во - первых, исключение на самом деле говорит о том, что с вашим sql что - то не так-например, есть ли у вас столбец " Id "- что произойдет, если вы удалите предложение " order by..."?
во-вторых, это ужасный способ написания SQL-операторов - вы должны использовать параметризованные запросы, например
using (SqlCommand command = new SqlCommand(
"Select * from StateTable where CountryName=@countryname", con))
{
//
// Add new SqlParameter to the command.
//
command.Parameters.Add(new SqlParameter("countryname", country));
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
return ds;
}
Member 13006667
-да, у меня есть столбец, называемый "Id" в StateTable
-в то время как исполнение показывает, что ценность страны принимается правильно. но он не получает значения " Id"
Garth J Lancaster
хорошо - не уверен, что вы имеете в виду под "Но он не получает значения "Id"", но мы продолжим
- ваш SQL не имеет пробела перед вашим предложением "order by", если я правильно его вижу, - поэтому, если вы переписали лучшую форму запроса, как я предложил, и вернули обратно "order by", у вас будет
"Select * from StateTable where CountryName=@countryname ORDER BY Id ASC"
обратите внимание на пробел между @countryname и ORDER-без него и с использованием country = 'Australia', я думаю, что ваш (оригинальный SQL) сделал бы вот что
"Select * from StateTable where CountryName=@countrynameorder по коду возрастанию"
Итак, если вы используете свой оригинальный sql (bleh), поставьте пробел перед ключевым словом "order"- также взгляните на https://msdn.microsoft.com/en-us/library/ms188385.aspx#BasicSyntax для синтаксиса
Member 13006667
Благодарю вас, сэр, за помощь.
моя проблема решается после реализации ваших решений.
Спасибо!
Garth J Lancaster
отлично - вы можете понять, почему это сложнее, если вы "сцепляете" свой SQL-оператор, надеюсь, - это облегчает введение ошибок