protected void btn_Insert_Click(object sender, EventArgs e)
{
int result = 0;
storageprice sp = new storageprice(tb_PriceID.Text, tb_StorageName.Text, tb_Desc.Text, decimal.Parse(tb_StorePrice.Text), int.Parse(tb_OutletID.Text));
result = sp.StoragePricingInsert();
if (result > 1)
{
Response.Write("<script>alert('Storage Remove Successfullly');</script>");
}
else
{
Response.Write("<script>alert('Storage Removal not successfull');</script>");
}
Response.Redirect("StoragePricingView.aspx");
}
C#文件
public int StoragePricingInsert()
{
int result = 0;
string queryStr = "INSERT INTO StoragePricing(Pricing_Id, Name, Description, Pricing, Outlet_Id)"
+ "values (@Pricing_ID, @Name, @Description, @Pricing, @Outlet_Id)";
try
{
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("@Pricing_Id", this.Pricing_Id);
cmd.Parameters.AddWithValue("@Name", this.Name);
cmd.Parameters.AddWithValue("@Description", this.Description);
cmd.Parameters.AddWithValue("@Pricing", this.Pricing);
cmd.Parameters.AddWithValue("@Outlet_Id", this.OutletId);
conn.Open();
result += cmd.ExecuteNonQuery(); // returns no. of rows affected. Must be >0
conn.Close();
return result;
}
catch (Exception ex)
{
return 0;
}
}
如何仅在主键中插入1个唯一字符串?
如果我添加并按"bt01"
,我会说"bt01"
它会提示已经在使用中。
非常感谢!
答案 0 :(得分:1)
取决于。如果您不关心ID值是什么,让数据库处理它 - 它应该根据它的配置方式自动分配值 - 使用标识列作为主键,并为您分配值。
如果要以编程方式分配值,则需要使用一种方法在数据库中查找最高值整数,将其递增并将值分配给新记录。您需要将该方法和save方法放入单例中以使其线程安全,因此无法将相同的值添加两次。
您还可以使用Guid作为主键而不是int。