我有两种方法,一种是插入,更新和删除,另一种是检查数据库中是否已经存在数据。所有代码的主要目的是我不想在数据库中插入重复数据。
public class DAL : System.Web.UI.Page
{
SqlConnection connection;
SqlCommand cmd;
SqlDataAdapter da;
DataTable dt;
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
public int numofrows;
//Connection Method
public void Connection()
{
connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
connection.Open();
}
//This Method will Insert,Update and Delete in Database
public void InsertUpdateDelete(string query)
{
////connection = new SqlConnection("Data Source=IM-82B70624D72D;Initial Catalog=AppointmentScheduler;User ID=sa;Password=za3452432760za");
//connection = new SqlConnection(connectionString);
//connection.Open();
this.Connection();
cmd = new SqlCommand(query, connection);
numofrows = cmd.ExecuteNonQuery();
connection.Close();
}
//This Method will read data From Database
public DataTable ReadData(string Query)
{
this.Connection();
da = new SqlDataAdapter(Query, connection);
dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
Response.Redirect("Data already Exist");
}
return dt;
}
}
我必须在
index.aspx
中使用以上两个代码。如何在index.aspx
中使用以上两个代码?我尝试使用,但这不起作用。
index.aspx
代码: protected void btnSaveDays_Click(object sender, EventArgs e)
{
this.query = "SELECT DaysName FROM Dayss WHERE Day_Id='" + DropDownListDays.SelectedValue + "'";
dal.ReadData(this.query);
this.query = "INSERT INTO Dayss VALUES ('" + DropDownListDays.SelectedItem.Text + "')";
dal.InsertUpdateDelete(this.query);
Response.Write("Day Inserted Successfully");
}
但是此代码无法正常工作并产生错误
转换失败
最佳答案
Day_Id不是int,而Dayss有两列。一个是id,第二个是
名称
因此,没有必要在int
类型的列值中使用单引号。单引号用于字符列值。
this.query = "SELECT DaysName FROM Dayss WHERE Day_Id = " + DropDownListDays.SelectedValue ;
如果只想插入一列,则需要在
Dayss
表中指定列名,例如:this.query = "INSERT INTO Dayss (YourColumnName) VALUES ('" + DropDownListDays.SelectedItem.Text + "')";
看看
INSERT (Transact-SQL)
关于c# - 我必须检查Asp.Net中数据库中是否存在数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23405573/