这基本上是我想要做的:
我在asp.net中有一个Web表单,它有一个名字和姓氏以及一个提交按钮,
现在点击提交按钮,我想显示一个自动生成的优惠券代码!
我应该怎么做呢?
这就是我在.cs文件中的内容:
namespace WebApplication1
{
public partial class DetailsForm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}``
[WebMethod]
public static string InsertMethod(string firstname, string lastname)
{
SqlConnection con = new SqlConnection(@"Data Source=KIMBERLY\SQLSERVER02;Initial Catalog=Chalegh;User ID=***;Password=***");
SqlCommand cmd = new SqlCommand("insert into TestTable values('"+ firstname +"','" + lastname +"')", con);
con.Open();
cmd.ExecuteNonQuery();
return "True";
}
public static string GenerateVoucher(int length)
{
char[] CharArr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
string randomString = string.Empty;
Random objRandom = new Random();
return randomString;
}
}
}
答案 0 :(得分:1)
您可以使用GUID.NewGuid()
获取唯一ID值。
试试这个:
String randomString = Guid.NewGuid().ToString("N");
建议1:您的INSERT INTO
声明向sql injection attacks
开放,因此我建议您使用Parameterised Queries
来避免这些声明。
建议2:您需要通过检查其返回值来确定ExecuteNonQuery()
方法的执行状态。 ExecuteNonQuery()
返回数据库中更新的总行数。
试试这个:
using(SqlConnection con = new SqlConnection(@"Data Source=KIMBERLY\SQLSERVER02;Initial Catalog=Chalegh;User ID=***;Password=***"))
{
using(SqlCommand cmd = new SqlCommand("insert into TestTable values(@firstname,@lastname)", con))
{
con.Open();
int status = cmd.ExecuteNonQuery();
if(status>0)
return "True";
return "False";
}
}
答案 1 :(得分:1)
你需要做几件事:
我将创建一个快速列表,(我假设你使用的是Visual Studio)
1)创建一个按钮,以submit
按钮更改您的更改(将按钮拖到网页上)
2)为您的按钮创建一个事件处理程序(双击您的按钮)
3)编写处理程序的代码
您的数据库部分非常接近,就像评论建议您要使用参数一样。
using (var con =new SqlConnection(yourConnectionString))
{
SqlCommand cmd = new SqlCommand("insert into TestTable values('@firstName', '@lastName')", con);
SqlParameter paramFirstName= new SqlParameter();
paramFirstName.ParameterName = "@firstName";
paramFirstName.Value = firstName;
SqlParameter paramLastName= new SqlParameter();
paramLastName.ParameterName = "@lastName";
paramLastName.Value = lastName;
cmd.Parameters.Add(paramFirstName);
cmd.Parameters.Add(paramLastName);
con.Open();
cmd.ExecuteNonQuery();
}
为了生成优惠券号码,我喜欢Sudhakar Tillapudi的回答
String randomString = Guid.NewGuid().ToString("N").Substring(0, 6);
然后你需要将它显示在屏幕上。
lblVoucherNumber.Text = randomString;
请注意,目前您没有保存优惠券号码。您可能希望在某个地方保存该凭证号码(例如在您的TestTable中,请在将其投入生产时将其重命名)