我试图从用户登录时设置的 ASP.NET session 变量中获取用户的 ID。到目前为止我已经尝试过:
<asp:SqlDataSource ID="useridsource" runat="server">
<SelectParameters>
<asp:SessionParameter Name="myuser" SessionField="user" Type="string" />
</SelectParameters>
</asp:SqlDataSource>
从 session 变量中获取用户 ID 的 C# 代码:
int userid = Convert.ToInt16("SELECT [ID] * FROM [users] WHERE ([email] = @myuser)");
查询然后将用户 ID 插入到 Post 表中:
string query = "INSERT INTO userpost(categoryID, userID, adtitle, addescription, adphoto, uploadeddate) VALUES(@categorydata, @userid, @adtitle, @description, @image, @date)";
我知道在我的代码中设置 int userid 存在问题,但我一生都不知道如何解决它。 任何帮助将不胜感激!
最佳答案
首先连接到数据库,执行SQL命令,然后将返回的ID转换为整数。
int userid;
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT [ID] FROM [users] WHERE ([email] = @myuser)";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
userid = Convert.ToInt16(reader.GetValue(reader.GetOrdinal("ID")));
}
}
sqlConnection1.Close();
关于c# - 使用 session 变量时如何解决 ASP.Net "Input string was not in a correct format"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034432/