Sqlexception был необработан пользовательским кодом
В принципе, то, что я сделал, я добавляю userdata в таблицу базы данных и извлекаю данные из базы данных с помощью MVC. Я получил ошибку в действии метода получения данных из базы данных. Пожалуйста, поправьте меня, где мне на самом деле не хватает...!!!
Что я уже пробовал:
Контроллер:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Data.SqlClient; using System.Web.Configuration; using Insert_UserDetails.Models; using System.Data; namespace Insert_UserDetails.Controllers { public class UserController : Controller { // GET data from stored procedure public ActionResult InsertUserDetails() { var objuserdetail = new UserDetails(); using(SqlConnection con = new SqlConnection()) { con.ConnectionString = WebConfigurationManager.ConnectionStrings["mycon"].ToString(); var cmd = new SqlCommand("usercrudoperation", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@status", "GET"); con.Open(); var data_adapter = new SqlDataAdapter(cmd); var data_set = new DataSet(); data_adapter.Fill(data_set); // got error var userlist = new List<userdetails>(); for(int i = 0; i< data_set.Tables[0].Rows.Count; i++) { var objdetails = new UserDetails(); objdetails.userid = int.Parse(data_set.Tables[0].Rows[i]["userid"].ToString()); objdetails.username = data_set.Tables[0].Rows[i]["username"].ToString(); objdetails.education = data_set.Tables[0].Rows[i]["education"].ToString(); objdetails.location = data_set.Tables[0].Rows[i]["location"].ToString(); userlist.Add(objdetails); } objuserdetail.userinfo = userlist; } return View(objuserdetail); } //Insert data into stored procedure [HttpPost] public ActionResult InsertUserDetails(UserDetails user) { var objuserdetail = new UserDetails(); using(SqlConnection con = new SqlConnection()) { con.ConnectionString = WebConfigurationManager.ConnectionStrings["mycon"].ToString(); var cmd = new SqlCommand("usercrudoperation", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@username", user.userid); cmd.Parameters.AddWithValue("@education", user.education); cmd.Parameters.AddWithValue("@location", user.location); cmd.Parameters.AddWithValue("@Status", "Insert"); con.Open(); ViewData["result"] = cmd.ExecuteNonQuery(); } return View(); } } }
Модель :
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Insert_UserDetails.Models { public class UserDetails { // define all the fields of userdetail table public int userid { get; set; } public string username { get; set; } public string education { get; set; } public string location { get; set; } public List<userdetails> userinfo { get; set; } } }
Смотреть:
<pre>@model Insert_UserDetails.Models.UserDetails @{ ViewBag.Title = "InsertUserDetails"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>InsertUserDetails</h2> <div> @using (Html.BeginForm("InsertUserDetails", "User", FormMethod.Post)) { <table><tbody><tr><td>User Name :</td><td>@Html.TextBoxFor(u => u.username)</td></tr><tr><td>Education :</td><td>@Html.TextBoxFor(u => u.education)</td></tr><tr><td>Location :</td><td>@Html.TextBoxFor(u => u.location)</td></tr><tr><td> </td><td></td></tr></tbody></table> } <h4>User Details</h4> @if (Model != null) { if (Model.userinfo.Count > 0) { @foreach (var item in Model.userinfo) { } <table><tbody><tr><th>UserId</th><th>UserName</th><th>Education</th><th>Location</th></tr><tr><td>@Html.DisplayFor(modelitem => item.userid) </td><td>@Html.DisplayFor(modelitem => item.username)</td><td>@Html.DisplayFor(modelitem => item.education)</td><td>@Html.DisplayFor(modelitem => item.location)</td></tr></tbody></table> } else { No Details Found. } } $(function () { var msg = '@ViewData["result"]'; if (msg == '1') { alert("User Details Inserted Successfully"); window.location.href = "@Url.Action("InsertUserDetails", "User")"; } });
хранимая процедура:
Create Procedure usercrudoperation ( @username varchar(50), @education varchar(50), @location varchar(50), @status varchar(10) ) As BEGIN -- Insert User Details if @status ='INSERT' BEGIN INSERT INTO userdetail(username,education,location) VALUES(@username,@education,@location) END -- Get User Details if @status ='GET' BEGIN SELECT * FROM userdetail END END
Graeme_Grant
Мы не будем слепо отлаживать ваш код для вас. С каким сообщением об ошибке вы столкнулись? Пожалуйста, обновите свой вопрос, нажав на кнопку Improve question