使用SQL Server访问asp

本文关键字:asp 访问 Server SQL 使用 | 更新日期: 2023-09-27 18:03:34

string conn = "";
conn = ConfigurationManager.ConnectionStrings["Conn"].ToString();
SqlConnection objsqlconn = new SqlConnection(conn);
objsqlconn.Open();
SqlCommand objcmd = new SqlCommand("IF (select 1 from PRODUCT where PRODUCT_NAME=" + Master_product_txt.Text + ")=1
    PRINT 'ALREADY AVAILABLE'
ELSE
    Insert into PRODUCT(PRODUCT_NAME) Values('" + Master_product_txt.Text + "')
GO", objsqlconn);
objcmd.ExecuteNonQuery();
MessageBox.Show("Details Successfully Added!!!");

我试图检查数据库值之前插入值,我已经为它写了查询,它在sql server环境中工作,我无法在Visual Studio中实现相同的东西

使用SQL Server访问asp

  • go是一个SSMS (SQL Server Management Studio)语句,它不会从c#
  • 使用参数避免SQL注入
  • 在c# 中使用匈牙利语obj前缀是不寻常的

一个更好的版本的快速尝试:

var cmd = new SqlCommand(@"
    IF NOT EXISTS (SELECT * FROM PRODUCT WHERE PRODUCT_NAME = @NAME)
        BEGIN
        INSERT INTO PRODUCT (PRODUCT_NAME) VALUES (@NAME)
        END
    ", sqlconn);
cmd.Parameters.AddWithValue("@NAME", Master_product_txt.Text);
cmd.ExecuteNonQuery();
     SqlCommand objcmd = new SqlCommand("SELECT 1 from PRODUCT WHERE PRODUCT_NAME=@NAME" , objsqlconn);
//NVarChar
cmd.Parameters.Add("@NAME", SqlDbType.NVarChar,20).Value = Master_product_txt.Text;   
objsqlconn.Open();
        readr = SelectCommand.ExecuteReader();
        if (!readr.HasRows) 
        {
        `// code to insert values here.
        }`

打印"已可用"在这里不起作用。为了捕获打印语句消息,您必须向连接上的InfoMessage事件添加一个事件处理程序。尽可能使用参数化查询。div;)