c# - 使用 session 变量时如何解决 ASP.Net "Input string was not in a correct format"错误

标签 c# html asp.net visual-studio

我试图从用户登录时设置的 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/

相关文章:

c# - 找不到用于部署到 Azure Web 服务的已发布 DLL

html - 如何水平对齐一系列 HTML 链接?

javascript - 重绘游戏循环内的所有内容是否需要过多的 Canvas ?

.net - 带有MS Chart的ASP.NET禁用垂直线

html - 覆盖响应式网站的 ASP.NET DropDownList 宽度

c# - SQL Server 的 NHibernate 超时

c# - 找不到 CreateQuery() 方法

C#插件系统设计

javascript - 仅在 JS 中定位多个选择器

c# - 使用 REST 服务的跨平台文件上传/下载指南