C# 如何使用会话用户计算购物车
我目前正在一个购物车项目上工作。我已经完成了购物车,但不知何故,我无法计算购物车,它显示为0。我已经检查用户的会话是否已被抓取。 这是我使用的方法:C# 如何使用会话用户计算购物车,c#,mysql,asp.net,shopping-cart,C#,Mysql,Asp.net,Shopping Cart,我目前正在一个购物车项目上工作。我已经完成了购物车,但不知何故,我无法计算购物车,它显示为0。我已经检查用户的会话是否已被抓取。 这是我使用的方法: //check cart count public int getCartCount(string Username) { MySql.Data.MySqlClient.MySqlConnection msqlConnection = null; msqlConnection = new M
//check cart count
public int getCartCount(string Username)
{
MySql.Data.MySqlClient.MySqlConnection msqlConnection = null;
msqlConnection = new MySql.Data.MySqlClient.MySqlConnection("server=localhost;User Id=root;password=rootPassw0rd;Persist Security Info=False;database=infosec;Integrated Security=False");
MySql.Data.MySqlClient.MySqlCommand msqlCommand = new MySql.Data.MySqlClient.MySqlCommand();
//define the connection used by the command object
msqlCommand.Connection = msqlConnection;
msqlCommand.CommandText = "SELECT COUNT(*) FROM shoppingcart WHERE Item_Id = @Username ";
msqlCommand.Parameters.AddWithValue("@Username", _Username);
msqlConnection.Open();
string nofRow = "";
MySql.Data.MySqlClient.MySqlDataReader msqlReader = msqlCommand.ExecuteReader();
if (msqlReader.Read())
{
nofRow = msqlReader["COUNT(*)"].ToString();
}
msqlConnection.Close();
msqlConnection.Close();
msqlReader.Dispose();
int cart = Convert.ToInt32(nofRow);
return cart;
这是.axps页面的隐藏代码:
//cart increase if there items added.
if (Session["customer_Username"] == null)
{
cartCount.InnerText = "Cart (0)";
}
else
{
cartBLL cBLL = new cartBLL();
string a = Session["customer_Username"].ToString();
int count = cBLL.getCartCount(a);
cartCount.InnerText = "Cart (" + count + ")";
}
希望大家能帮我找出问题所在。
高级感谢。更改此行:
nofRow = msqlReader["COUNT(*)"].ToString();
到
也许,它对您有所帮助。更改此行:
nofRow = msqlReader["COUNT(*)"].ToString();
到
也许,它对您有所帮助。更改此行:
nofRow = msqlReader["COUNT(*)"].ToString();
到
也许,它对您有所帮助。更改此行:
nofRow = msqlReader["COUNT(*)"].ToString();
到
也许,它对您有所帮助。好吧,也许MySqlDataReader
在读取“COUNT(*)”
列时会遇到问题(我还没有尝试过)
另一点,当您使用msqlReader[“COUNT(*)”]
读取“COUNT(*)”
列时,您的结果可以是null
和Convert.ToInt32(null)
生成0
。(但这不太可能)
但更重要的是,在您的情况下,使用MySqlDataReader
不是一个好选择。由于使用COUNT(*)
获取行计数,因此返回查询中第一行的第一列是更好的选择
msqlCommand.CommandText = "SELECT COUNT(*) FROM shoppingcart WHERE Item_Id = @Username ";
msqlCommand.Parameters.AddWithValue("@Username", _Username);
int cart = (int)msqlCommand.ExecuteScalar();
还可以使用处置您的MySqlConnection
和MySqlCommand
等
using(MySqlConnection msqlConnection = new MySqlConnection(conString))
using(MySqlCommand msqlCommand = myCon.CreateCommand())
{
//
}
好吧,也许MySqlDataReader
在读取“COUNT(*)”
列时会遇到问题(我还没有尝试过)
另一点,当您使用msqlReader[“COUNT(*)”]
读取“COUNT(*)”
列时,您的结果可以是null
和Convert.ToInt32(null)
生成0
。(但这不太可能)
但更重要的是,在您的情况下,使用MySqlDataReader
不是一个好选择。由于使用COUNT(*)
获取行计数,因此返回查询中第一行的第一列是更好的选择
msqlCommand.CommandText = "SELECT COUNT(*) FROM shoppingcart WHERE Item_Id = @Username ";
msqlCommand.Parameters.AddWithValue("@Username", _Username);
int cart = (int)msqlCommand.ExecuteScalar();
还可以使用处置您的MySqlConnection
和MySqlCommand
等
using(MySqlConnection msqlConnection = new MySqlConnection(conString))
using(MySqlCommand msqlCommand = myCon.CreateCommand())
{
//
}
好吧,也许MySqlDataReader
在读取“COUNT(*)”
列时会遇到问题(我还没有尝试过)
另一点,当您使用msqlReader[“COUNT(*)”]
读取“COUNT(*)”
列时,您的结果可以是null
和Convert.ToInt32(null)
生成0
。(但这不太可能)
但更重要的是,在您的情况下,使用MySqlDataReader
不是一个好选择。由于使用COUNT(*)
获取行计数,因此返回查询中第一行的第一列是更好的选择
msqlCommand.CommandText = "SELECT COUNT(*) FROM shoppingcart WHERE Item_Id = @Username ";
msqlCommand.Parameters.AddWithValue("@Username", _Username);
int cart = (int)msqlCommand.ExecuteScalar();
还可以使用处置您的MySqlConnection
和MySqlCommand
等
using(MySqlConnection msqlConnection = new MySqlConnection(conString))
using(MySqlCommand msqlCommand = myCon.CreateCommand())
{
//
}
好吧,也许MySqlDataReader
在读取“COUNT(*)”
列时会遇到问题(我还没有尝试过)
另一点,当您使用msqlReader[“COUNT(*)”]
读取“COUNT(*)”
列时,您的结果可以是null
和Convert.ToInt32(null)
生成0
。(但这不太可能)
但更重要的是,在您的情况下,使用MySqlDataReader
不是一个好选择。由于使用COUNT(*)
获取行计数,因此返回查询中第一行的第一列是更好的选择
msqlCommand.CommandText = "SELECT COUNT(*) FROM shoppingcart WHERE Item_Id = @Username ";
msqlCommand.Parameters.AddWithValue("@Username", _Username);
int cart = (int)msqlCommand.ExecuteScalar();
还可以使用处置您的MySqlConnection
和MySqlCommand
等
using(MySqlConnection msqlConnection = new MySqlConnection(conString))
using(MySqlCommand msqlCommand = myCon.CreateCommand())
{
//
}
几件事:
- 验证
返回用户名李>string a=Session[“customer_Username”].ToString()
- Change
tonofRow=msqlReader[“COUNT(*)”].ToString()
nofRow=msqlReader[0].ToString()代码>。查询中包含count aggregate函数
- 验证
确实拉入值@用户名需要替换为会话中的值从shoppingcart中选择COUNT(*),其中Item_Id=@Username
- 这行
应为msqlCommand.Parameters.AddWithValue(“@Username”,_Username)中似乎有输入错误代码><代码>\用户名
用户名
- 验证
返回用户名李>string a=Session[“customer_Username”].ToString()
- Change
tonofRow=msqlReader[“COUNT(*)”].ToString()
nofRow=msqlReader[0].ToString()代码>。查询中包含count aggregate函数
- 验证
确实拉入值@用户名需要替换为会话中的值从shoppingcart中选择COUNT(*),其中Item_Id=@Username
- 这行
应为msqlCommand.Parameters.AddWithValue(“@Username”,_Username)中似乎有输入错误代码><代码>\用户名
用户名
- 验证
返回用户名李>string a=Session[“customer_Username”].ToString()
- Change
tonofRow=msqlReader[“COUNT(*)”].ToString()
nofRow=msqlReader[0].ToString()代码>。查询中包含count aggregate函数
- 验证
确实拉入值@用户名需要替换为会话中的值从shoppingcart中选择COUNT(*),其中Item_Id=@Username
- 这行
应为msqlCommand.Parameters.AddWithValue(“@Username”,_Username)中似乎有输入错误代码><代码>\用户名
用户名
- 验证
返回用户名李>string a=Session[“customer_Username”].ToString()
- Change
tonofRow=msqlReader[“COUNT(*)”].ToString()
nofRow=msqlReader[0].ToString()代码>。查询中包含count aggregate函数
- 验证
确实拉入值@用户名从shoppingcart中选择COUNT(*),其中Item_Id=@Username
- 几件事:
- 几件事:
- 几件事: