c# - SqlException 未被用户代码处理,关键字事务附近的语法不正确
问题描述
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
/// <summary>
/// Summary description for Transaction
/// </summary>
public class Transaction
{
private string connStr = ConfigurationManager.ConnectionStrings["airmazin"].ConnectionString;
private string _TransactionID;
private string _OfferId;
private string _UserName;
private string _Image;
private string _ProductName;
private decimal _ProductPrice;
public Transaction()
{
this.TransactionID = null;
this.OfferId = null;
this.UserName = null;
this.Image = null;
this.ProductName = null;
this.ProductPrice = 0;
//
// TODO: Add constructor logic here
//
}
public Transaction(string p_TransactionID, string p_OfferId, string p_UserName, string p_Image, string p_ProductName, decimal p_ProductPrice)
{
this.TransactionID = p_TransactionID;
this.OfferId = p_OfferId;
this.UserName = p_UserName;
this.Image = p_Image;
this.ProductName = p_ProductName;
this.ProductPrice = p_ProductPrice;
}
private string TransactionID
{
get { return _TransactionID; }
set { _TransactionID = value; }
}
private string OfferId
{
get { return _OfferId; }
set { _OfferId = value; }
}
private string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
private string Image
{
get { return _Image; }
set { _Image = value; }
}
private string ProductName
{
get { return _TransactionID; }
set { _ProductName = value; }
}
private decimal ProductPrice
{
get { return _ProductPrice; }
set { _ProductPrice = value; }
} //getter and setter
public Transaction getProductTransaction(string p_UserName)
{
Transaction prodDetail = null;
string tran_ID, offer_ID, user, Prod_Image, prod_Name;
decimal prod_Price;
SqlConnection conn = new SqlConnection(connStr);
string queryStr = "SELECT * FROM Transaction WHERE UserName = @user";
// think the naming convention is wrong
SqlCommand cmd = new SqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("@user", p_UserName);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
tran_ID = dr["TransactionID"].ToString();
offer_ID = dr["OfferId"].ToString();
user = dr["UserName"].ToString();
Prod_Image = dr["Image"].ToString();
prod_Name = dr["ProductName"].ToString();
prod_Price = decimal.Parse(dr["ProductPrice"].ToString());
prodDetail = new Transaction(tran_ID, offer_ID, user, Prod_Image, prod_Name, prod_Price);
}
else
{
prodDetail = null;
}
conn.Close();
dr.Close();
dr.Dispose();
return prodDetail;
}
不太确定sql。刚开始编程,目前是学生。遇到了这个错误,显示在关键字交易附近。命名约定可能是错误的,可能需要一些帮助。想在 aspx 页面上显示交易历史,所以我正在执行 getProductTransaction(){} 方法,但它似乎有问题
编辑(来自评论)
现在我希望它显示交易列表而不是单个交易
解决方案
由于表名“事务”是关键字,可能会出现问题。你可以试试这个作为查询:
string queryStr = "SELECT * FROM [Transaction] WHERE UserName = @user";
推荐阅读
- google-cloud-dataflow - 处理卡在步骤中
/ParMultiDo( ) 至少 05m00s 没有输出或完成状态 windmill-read - angular - 从 LocalStorage 迭代 Angular 9 中的值
- javascript - 如何将道具从子组件传递到父组件到 ReactJS 中的另一个子组件?
- python - 有人可以解释一下 x[0][0][0] 是如何工作的,其中 x 是 string ,比如 python 中的 x =“This is text file”?
- windows - 升级时根据活动文件类型关联设置任务值
- confluence-rest-api - 用于在 Cloud Confluence 上创建空间的 Python 脚本
- tensorflow - 如何使用 tensorboard 以 Eager 模式可视化 tensorflow 1.15 中的网络图?
- azure-devops - 概述(列出)关闭一个订阅中具有相同域名的组织
- angular - 角 - 茉莉花:由于间谍而无法测试方法
- python - Python/SQL 错误,错误未注册