C# 错误无法从';对象';至';字符串';动态填充asp:DropDownList时
我试图用sql中的数据填充我的droplist,但当我尝试添加列表项时,标题中出现了错误C# 错误无法从';对象';至';字符串';动态填充asp:DropDownList时,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,我试图用sql中的数据填充我的droplist,但当我尝试添加列表项时,标题中出现了错误 SqlCommand cmd = new SqlCommand(@"SELECT RLS.RoleName [RoleName], URS.UserID [UserID], USRS.UserName[UserName], USRS.FirstName[FirstName], USRS.LastName[LastName] FROM [Roles] RLS
SqlCommand cmd = new SqlCommand(@"SELECT RLS.RoleName [RoleName],
URS.UserID [UserID],
USRS.UserName[UserName],
USRS.FirstName[FirstName],
USRS.LastName[LastName]
FROM [Roles] RLS
Inner JOIN [Users] USRS
LEFT JOIN [UserRoles] URS ON USRS.[UserID] = URS.[UserID] ON RLS.[RoleID] = URS.[RoleID]
WHERE RLS.[RoleName] = 'Blog Editors'",conn);
conn.Open();
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"], row["numUserId"]));
}
}
}
请用户
转换.ToString
SqlCommand cmd = new SqlCommand(@"SELECT RLS.RoleName [RoleName], URS.UserID [UserID], USRS.UserName[UserName], USRS.FirstName[FirstName], USRS.LastName[LastName]
FROM [Roles] RLS Inner JOIN [Users] USRS LEFT JOIN [UserRoles] URS
ON USRS.[UserID] = URS.[UserID] ON RLS.[RoleID] = URS.[RoleID]
WHERE RLS.[RoleName] = 'Blog Editors'",conn);
conn.Open();
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(Convert.ToString(row["newUserName"]), Convert.ToString(row["numUserId"]));
}
}
或者调用ToString()
请用户
转换.ToString
SqlCommand cmd = new SqlCommand(@"SELECT RLS.RoleName [RoleName], URS.UserID [UserID], USRS.UserName[UserName], USRS.FirstName[FirstName], USRS.LastName[LastName]
FROM [Roles] RLS Inner JOIN [Users] USRS LEFT JOIN [UserRoles] URS
ON USRS.[UserID] = URS.[UserID] ON RLS.[RoleID] = URS.[RoleID]
WHERE RLS.[RoleName] = 'Blog Editors'",conn);
conn.Open();
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(Convert.ToString(row["newUserName"]), Convert.ToString(row["numUserId"]));
}
}
或者调用ToString()
请用户
转换.ToString
SqlCommand cmd = new SqlCommand(@"SELECT RLS.RoleName [RoleName], URS.UserID [UserID], USRS.UserName[UserName], USRS.FirstName[FirstName], USRS.LastName[LastName]
FROM [Roles] RLS Inner JOIN [Users] USRS LEFT JOIN [UserRoles] URS
ON USRS.[UserID] = URS.[UserID] ON RLS.[RoleID] = URS.[RoleID]
WHERE RLS.[RoleName] = 'Blog Editors'",conn);
conn.Open();
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(Convert.ToString(row["newUserName"]), Convert.ToString(row["numUserId"]));
}
}
或者调用ToString()
请用户
转换.ToString
SqlCommand cmd = new SqlCommand(@"SELECT RLS.RoleName [RoleName], URS.UserID [UserID], USRS.UserName[UserName], USRS.FirstName[FirstName], USRS.LastName[LastName]
FROM [Roles] RLS Inner JOIN [Users] USRS LEFT JOIN [UserRoles] URS
ON USRS.[UserID] = URS.[UserID] ON RLS.[RoleID] = URS.[RoleID]
WHERE RLS.[RoleName] = 'Blog Editors'",conn);
conn.Open();
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(Convert.ToString(row["newUserName"]), Convert.ToString(row["numUserId"]));
}
}
或者调用ToString()
这样做
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"].ToString(), row["numUserId"].ToString()));
这样做
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"].ToString(), row["numUserId"].ToString()));
这样做
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"].ToString(), row["numUserId"].ToString()));
这样做
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"].ToString(), row["numUserId"].ToString()));
让我在这里简要分析一下您的代码:
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"], row["numUserId"]));
}
}
}
您一条记录一条记录地从读卡器中读取数据,只是为了对每条记录反复执行相同的语句来填充数据集?这意味着,对于每一条记录,您都会用所有记录填充一个新的数据集——这是相当冗余的,不是吗
此外,SQL语句从不选择newUserName
或numUserId
列,因此不能访问表中任何一行中的任何一列
你真的不想做下面的事情吗?这将逐行读取用户数据,组合新用户名,然后在列表中创建一个新条目
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
ddlCreatedBy.Items.Add(new ListItem(newUserName, numUserId.ToString()));
}
}
让我在这里简要分析一下您的代码:
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"], row["numUserId"]));
}
}
}
您一条记录一条记录地从读卡器中读取数据,只是为了对每条记录反复执行相同的语句来填充数据集?这意味着,对于每一条记录,您都会用所有记录填充一个新的数据集——这是相当冗余的,不是吗
此外,SQL语句从不选择newUserName
或numUserId
列,因此不能访问表中任何一行中的任何一列
你真的不想做下面的事情吗?这将逐行读取用户数据,组合新用户名,然后在列表中创建一个新条目
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
ddlCreatedBy.Items.Add(new ListItem(newUserName, numUserId.ToString()));
}
}
让我在这里简要分析一下您的代码:
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"], row["numUserId"]));
}
}
}
您一条记录一条记录地从读卡器中读取数据,只是为了对每条记录反复执行相同的语句来填充数据集?这意味着,对于每一条记录,您都会用所有记录填充一个新的数据集——这是相当冗余的,不是吗
此外,SQL语句从不选择newUserName
或numUserId
列,因此不能访问表中任何一行中的任何一列
你真的不想做下面的事情吗?这将逐行读取用户数据,组合新用户名,然后在列表中创建一个新条目
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
ddlCreatedBy.Items.Add(new ListItem(newUserName, numUserId.ToString()));
}
}
让我在这里简要分析一下您的代码:
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
ddlCreatedBy.Items.Add(new ListItem(row["newUserName"], row["numUserId"]));
}
}
}
您一条记录一条记录地从读卡器中读取数据,只是为了对每条记录反复执行相同的语句来填充数据集?这意味着,对于每一条记录,您都会用所有记录填充一个新的数据集——这是相当冗余的,不是吗
此外,SQL语句从不选择newUserName
或numUserId
列,因此不能访问表中任何一行中的任何一列
你真的不想做下面的事情吗?这将逐行读取用户数据,组合新用户名,然后在列表中创建一个新条目
using (SqlDataReader reader1 = cmd.ExecuteReader())
{
while (reader1.Read())
{
int numUserID = reader1.GetInt32(1);
string strFirstName = reader1.GetString(3);
string strLastName = reader1.GetString(4);
string newUserName = strFirstName + " " + strLastName;
ddlCreatedBy.Items.Add(new ListItem(newUserName, numUserId.ToString()));
}
}