我對c#很陌生,並試圖混淆事物的方式。我習慣於在iSeries(RPG)上編碼,所以c#對我來說是一個非常不同的概念。從SQL Server存儲過程中存儲有用的數據
我有一個存儲過程,根據匹配行返回一行(或多行)的數據。
想象一下,我的表用戶持有下列:
UserId, CompanyId, FirstName, LastName, CompanyAdmin, AccountStatus, UserName.
我有一個存儲過程返回所有這些列,其中有一個匹配的公司ID(即... Select * from users where CompanyId = 1
)。
我已經創建了一個類,具有上面匹配的字段以及相應的get/set方法(即。public int UserId {get; set;}
等)。
我已經使用了SqlDataReader
和我試圖從我與讀者數據類加載每個領域,但我得到一個錯誤
「讀者[‘用戶名’]」引發了異常類型的
'System.InvalidOperationException' 對象
{System.InvalidOperationException}
什麼我錯過了嗎?最終,我希望一個對象具有所有定義的字段,這些字段將與我的SQL Server存儲過程中的結果集相匹配。
我的代碼引發錯誤看起來是這樣的..
public partial class Admin : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet("ot_Users");
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = "dbo.ot_User_GetByUserName";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@UserName", Environment.UserName);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
ot_Users user = new ot_Users();
while(reader.Read())
{
user.CompanyId = (int) reader["CompanyId"];
user.UserId = (int) reader["UserId"];
user.FirstName = (String) reader["FirstName"];
user.LastName = (String) reader["LastName"];
user.CompanyAdmin = (bool) reader["CompanyAdmin"];
user.AccountStatus = (int) reader["AccountStatus"];
user.UserName = (String) reader["UserName"];
}
reader.NextResult();
CompanyName.Text = user.FirstName.ToString();
}
}
}
名,姓和用戶名。他們(字符)是不是應該是字符串? – AJP
我已經改變了他們,但仍然得到相同的問題 – lomie76
嘗試字符串與小寫's'。 – AJP