无法转换类型' WebMatrix.Data.DynamicRecord'到' int'当我尝试将QueryValue方法的值输出到int?
时出现异常public class SaveCustomerData : IDisposable
{
private readonly string _connectionString;
private readonly Database _db;
public SaveCustomerData(string connectionString)
{
_connectionString = connectionString;
_db = Database.Open(connectionString);
}
public void Insert(string fname, string lname, string phone, string cellno, DateTime dob, string gender, string address, string address2, string creditno, string city, string postalcode, string email) {
var uid = Convert.ToInt32(_db.QuerySingle("SELECT UserID FROM UserProfile WHERE Email=@0",email));
_db.Execute("INSERT INTO Customer_Table (customer_fname, customer_lname, customer_phone, customer_mobile, customer_dob, customer_gender, customer_address, customer_address2, customer_credit_no, customer_city, customer_postal, UserID) VALUES (@0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12)",
fname, lname, phone, cellno, dob, gender, address, address2, creditno, city, postalcode, uid);
答案 0 :(得分:0)
你必须使用它:
_db.QuerySingle("SELECT UserID FROM UserProfile WHERE Email=@0",email)
.Item["UserID"];
按顺序返回UserID
的值。您收到了问题中发布的错误,因为您的查询返回了WebMatrix.Data.DynamicRecord
类型的对象,其中
使用自定义类型描述符和表示数据记录 动态语言运行时(DLR)的功能。
表示here,而不是UserID
的值。
为了获得执行_db.QuerySingle(...)
后返回的记录中某个列的值,您有两个选择:
Item[Int32]
,使用指定的索引返回DynamicRecord实例中列的值。
和
Item[string]
,使用指定的名称返回DynamicRecord实例中列的值。