Я получил набор данных из db Northwind с целью отображения через webgrid в представлении. Однако, когда я создаю экземпляр объекта клиента, ошибки при преобразовании поля «id» в значение int. Вот мой код ...Проблемы, связанные с преобразованием строки DataSet в Integer
public ActionResult List()
{
SqlConnection conn;
SqlDataAdapter myDataAdapter;
DataSet myDataSet;
string cmdString = "SELECT CustomerID, CompanyName, ContactName, ContactTitle FROM Customers";
conn = new SqlConnection("Data Source=PETERPC\\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True");
myDataAdapter = new SqlDataAdapter(cmdString, conn);
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "Customers");
foreach (DataRow dr in myDataSet.Tables[0].Rows)
{
customers.Add(new Customer() { id = int.Parse(dr[0].ToString()), co_name = dr[1].ToString(), name = dr[2].ToString(), title = dr[3].ToString() });
}
return View(customers);
}
Список объявлен в верхней части файла контроллера ...
private List<Customer> customers = new List<Customer>();
Однако я имею несколько способов обойти эту проблему, но внутри Еогеасп id = int.Parse(dr[0].ToString())
всегда ошибки, он будет работать нормально, если я не использую ID.
Вот сообщение об ошибке ...
[FormatException:. Входная строка была не в правильном формате] System.Number.StringToNumber (String, ул варианты NumberStyles, NumberBuffer & номер, NumberFormatInfo информация , Boolean parseDecimal) +10726387 System.Number.ParseInt32 (String с, NumberStyles стиль, NumberFormatInfo информация) +145 System.Int32.Parse (String S) +23
Movie.Controllers.HelloController.List() в с: \ Users \ peter_000 \ Documents \ Visual Studio 2012 \ Projects \ Movie \ Movie \ Controllers \ HelloCo ntroller.cs: 52
lambda_method (Закрытие, ControllerBase, Object []) +101
Цель состоит в том, чтобы переместить все это вне к веб-сервиса и назвать его в качестве службы. Вероятно, это должно быть тривиально, но я не могу найти способ обойти его.
Может ли кто-нибудь посоветовать или предложить лучший способ сделать это?
Что содержит 'dr [0]'? Вы использовали отладчик для просмотра значения? – nmat
Вы пробовали без использования ToString(), например id = dr [0], или вы могли бы использовать int.TryParse (dr [0] .ToString(), out id)? – Edper
Я пробовал эти первые попытки, нижнее решение отлично работало для меня. спасибо за ваши комментарии ребята –