如果给定的文件名已经在数据库中,我想在表中进行更新,否则我想插入新行。我尝试此代码,但EXISTS
显示的错误请给我正确的方式,因为我在SQL中更新鲜
public void SaveData(string filename, string jsonobject)
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=;Integrated Security=True");
SqlCommand cmd;
SqlCommand cmda;
if EXISTS("SELECT * FROM T_Pages WHERE pagename = '" + filename + "") {
cmda = new SqlCommand("UPDATE T_Pages SET pagename='" + filename + "',pageinfo='" + jsonobject + "' WHERE pagename='" + filename + "'", con);
cmda.ExecuteNonQuery();
}
else {
cmd = new SqlCommand("insert into T_Pages (pagename,pageinfo) values('" + filename + "','" + jsonobject + "')", con);
cmd.ExecuteNonQuery();
}
con.Close();
}
你应该
IF EXISTS()
零件的单个查询 __using() {....}
块等。试试下面的代码:
public void SaveData(string filename, string jsonobject)
{
// define connection string and query
string connectionString = "Data Source=.;Initial Catalog=;Integrated Security=True";
string query = @"IF EXISTS(SELECT * FROM dbo.T_Pages WHERE pagename = @pagename)
UPDATE dbo.T_Pages
SET pageinfo = @PageInfo
WHERE pagename = @pagename
ELSE
INSERT INTO dbo.T_Pages(PageName, PageInfo) VALUES(@PageName, @PageInfo);";
// create connection and command in "using" blocks
using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(query, conn))
{
// define the parameters - not sure just how large those
// string lengths need to be - use whatever is defined in the
// database table here!
cmd.Parameters.Add("@PageName", SqlDbType.VarChar, 100).Value = filename;
cmd.Parameters.Add("@PageInfo", SqlDbType.VarChar, 200).Value = jsonobject;
// open connection, execute query, close connection
conn.Open();
int rowsAffected = cmd.ExecuteNonQuery();
conn.Close();
}
}
问题内容: 我有一个带有2个表的数据库,如下所示: 列是,并且是 和 在申请表中,我有2个编辑框,名称分别为和 如果用户像电子邮件一样插入一个新的负责人姓名, 那么在保存表格的过程中,我想将新的负责人姓名插入表中,请插入最后一个并将其更新为。 如果用户保持名称,但它更新电子邮件一样,然后我想在从1 =使用新的电子邮件地址和他们(其余和)保持不变。 如果负责人的名称相同,我想保留from表的原始引用
问题内容: 我有一些看起来像这样的代码。我必须保留表中的一个自动递增字段(在其他表中使用)。我想简化和优化此代码。 编辑:主键ID是自动递增的字段。我永远都不想改变。但是,当另一个字段重复时,这就是我要更新该记录的时间。 问题答案: 如何替换成: 假设col1是您的主键,如果已经存在一个值为’foo’的行,它将更新其他两列。否则,它将插入新行。
问题内容: 如果存在,它就可以工作,但是如果不存在,我想将此数据作为新行插入。 更新 datenum是唯一的,但这不是主键 问题答案: Jai是正确的,您应该使用。 请注意,由于它是唯一键,因此不需要在update子句中包含datenum,因此它不应更改。您确实需要包括表中的所有其他列。您可以使用该函数来确保在更新其他列时使用正确的值。 这是使用适用于MySQL 的正确语法重写的更新:
问题内容: 我有一个字段为Foreign_key_id的表| value1 | value2,如果我有对Foreign_key_id和value1的匹配项,我想更新value2。 如果foreign_key_id或value1不存在,我想插入一个新行。有没有比PHP使用select语句然后分支到更新或插入更好的方法呢? 编辑:value2可以与数据库中的值相同,因此我无法运行和更新,请查看受影响的
问题内容: 有没有一种简单的方法可以使用一个MySQL查询对不存在的行或存在的行进行简单的处理? 问题答案: 是的。例如: