C# 从数据库中获取数据,其中UserID等于asp:label中的值
您好,谢谢您的阅读 我有一个表单,用户可以将数据插入我的数据库,同时,用户的唯一ID存储在同一个表中 以下是我将唯一项存储在标签中的代码:C# 从数据库中获取数据,其中UserID等于asp:label中的值,c#,asp.net,sql,C#,Asp.net,Sql,您好,谢谢您的阅读 我有一个表单,用户可以将数据插入我的数据库,同时,用户的唯一ID存储在同一个表中 以下是我将唯一项存储在标签中的代码: MembershipUser user = Membership.GetUser(); string id = user.ProviderUserKey.ToString(); lblID.Text = id.ToString(); 这就是我的数据库的外观/ID、名称、电子邮件、主题、消息、UserID/ 以下是我的数据库插入代码: SqlConnecti
MembershipUser user = Membership.GetUser();
string id = user.ProviderUserKey.ToString();
lblID.Text = id.ToString();
这就是我的数据库的外观/ID、名称、电子邮件、主题、消息、UserID/
以下是我的数据库插入代码:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
conn.Open();
string Name = txtName.Text;
string Email = txtEmail.Text;
string Subject = ddlSubject.SelectedValue;
string Message = txtMessage.Text;
string UniqueID = lblID.Text;
string query = "INSERT INTO Ticket(Name, Email, Subject, Message, UserID)" + "Values('" + Name + "', '" + Email + "', '" + Subject + "', '" + Message + "', '" + UniqueID + "')";
using (SqlCommand com = new SqlCommand(query, conn))
{
com.ExecuteNonQuery();
}
我遇到的问题是从UserID=lblID.text的数据库中获取数据
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
conn.Open();
using (var GetName = new SqlCommand("SELECT Name FROM Ticket WHERE UserID=''", conn))
using (SqlDataReader dr = GetName.ExecuteReader())
{
if (dr.Read())
{
lblGetData.Text = dr.GetString(dr.GetOrdinal("Name"));
}
}
正如您在下面的代码中所看到的,我在查找加载数据时遇到了一个问题,其中UserID=lblID.text
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
conn.Open();
using (var GetName = new SqlCommand("SELECT Name FROM Ticket WHERE UserID=''", conn))
using (SqlDataReader dr = GetName.ExecuteReader())
{
if (dr.Read())
{
lblGetData.Text = dr.GetString(dr.GetOrdinal("Name"));
}
}
非常感谢您的帮助。更改此行
using (var GetName = new SqlCommand("SELECT Name FROM Ticket WHERE UserID=''", conn))
到
但是,此查询容易受到sql注入攻击。。如果不确定该值来自何处,则应使用sql参数将sql注入的风险降至最低。更改此行
using (var GetName = new SqlCommand("SELECT Name FROM Ticket WHERE UserID=''", conn))
到
但是,此查询容易受到sql注入攻击。。如果不确定值来自何处,则应使用sql参数将sql注入的风险降至最低。您需要将
lblID.Text
传递到sql查询。使用此参数化查询可避免
您需要将
lblID.Text
传递给SQL查询。使用此参数化查询可避免
使用这个答案,我希望它有帮助
使用这个答案,我希望它能有所帮助。非常感谢,工作得很好。“如果您不确定值来自何处,您应该使用sql参数来最小化sql注入的风险。”FTFY。非常感谢,工作得很好。“如果您不确定该值来自何处,则应使用sql参数将sql注入的风险降至最低。”FTFY。
using (var GetName = new SqlCommand("SELECT Name FROM Ticket WHERE UserID='" + lblID.Text + "'", conn))