我正在尝试将数据从文本框插入到sql数据库中,但我想检查该行是否为空,然后插入新值,否则在if else条件下使用sqlcommands值更新行。
以下是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class CM : System.Web.UI.Page
{
DataSet ds = new DataSet();
SqlDataAdapter da;
SqlCommand cmd;
//DataTable dt;
SqlConnection con = new SqlConnection("server =consulting76\\SQLEXPRESS; database = msdb; Integrated Security=True");
protected void Page_Load(object sender, EventArgs e)
{
da = new SqlDataAdapter();
//("Select * from NOTESMAKER", con);
//da.Fill(ds, "NOTESMAKER");
//dt = ds.Tables["NOTESMAKER"];
}
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
if (DBNull.Value != null)
{
cmd = new SqlCommand("Insert into NOTESMAKER(NOTESMAKER) Values(@text1)",con);
cmd.Parameters.Add(new SqlParameter("@text1", SqlDbType.NText)).Value = TextBox1.Text;
da.InsertCommand = cmd;
cmd.ExecuteNonQuery();
}
else
{
cmd = new SqlCommand("Update NOTESMAKER set NOTESMAKER = @text1)",con);
cmd.Parameters.Add(new SqlParameter("@text1", SqlDbType.NText)).Value = TextBox1.Text;
da.UpdateCommand = cmd;
cmd.ExecuteNonQuery();
}
con.Close();
}
}
答案 0 :(得分:0)
你可以这样做。 ExecuteNonQuery()
返回受影响的行数,因此如果insert返回0,则表示没有要更新的内容。因此,您需要插入一行。
cmd = new SqlCommand("Update NOTESMAKER set NOTESMAKER = @text1)",con);
cmd.Parameters.Add(new SqlParameter("@text1", SqlDbType.NText)).Value = TextBox1.Text;
int affectedRows = cmd.ExecuteNonQuery();
if (affectedRows == 0)
{
cmd = new SqlCommand("Insert into NOTESMAKER(NOTESMAKER) Values(@text1)",con);
cmd.Parameters.Add(new SqlParameter("@text1", SqlDbType.NText)).Value = TextBox1.Text;
cmd.ExecuteNonQuery();
}
答案 1 :(得分:0)