我正在尝试将产品详细信息插入到我的产品表中进行存储,然后从中选择以显示
我已经试过了
cmd.Parameters.AddWithValue("ProdPrice", Convert.ToInt32(txtProdPrice.Text));
cmd.Parameters.AddWithValue("ProdPrice", decimal.Parse(txtProdPrice.Text));
cmd.Parameters.AddWithValue("prodStock", int.Parse(txtProdStock.Text));
产品表
CREATE TABLE [dbo].[Product] (
[ProdID] INT IDENTITY (1, 1) NOT NULL,
[ProdName] NVARCHAR (50) NOT NULL,
[ProdPrice] DECIMAL (18, 2) NULL,
[ProdDesc] NVARCHAR (MAX) NULL,
[ImageName] NVARCHAR (255) NULL,
[Size] INT NULL,
[ImageData] VARBINARY (MAX) NULL,
[ProdBrand] NVARCHAR (50) NULL,
[ProdStock] INT NULL,
PRIMARY KEY CLUSTERED ([ProdID] ASC)
.ASPX.CS 代码
string cs = ConfigurationManager.ConnectionStrings["DataBase"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("insert into Product values (@ProdName, @ProdDesc, @ProdPrice, @ImageName, @Size, @ImageData, @ProdBrand, @ProdStock);", con);
cmd.Parameters.AddWithValue("ProdName", txtProdName.Text);
cmd.Parameters.AddWithValue("ProdDesc", txtProdDesc.Text);
cmd.Parameters.AddWithValue("ProdPrice", decimal.Parse(txtProdPrice.Text));
cmd.Parameters.AddWithValue("ImageName", fileName);
cmd.Parameters.AddWithValue("Size", fileSize);
cmd.Parameters.AddWithValue("ImageData", bytes);
cmd.Parameters.AddWithValue("ProdBrand", ddlBrand.SelectedItem.Text);
cmd.Parameters.AddWithValue("prodStock", int.Parse(txtProdStock.Text));
con.Open();
cmd.ExecuteNonQuery();
con.Close();
lblImageResult.Visible = true;
lblImageResult.Text = "Upload Successful";
lblImageResult.ForeColor = System.Drawing.Color.Green;
所有结果仍然相同,“将数据类型 nvarchar 转换为数字时出错”
最佳答案
如果不指定插入语句中的字段,则提供的值应按表的列顺序。
... insert into Product values (@ProdName, @ProdPrice, @ProdDesc, ....
关于c# - ASP.NET 将数据类型 nvarchar 转换为数字时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56948932/