Я ищу (PostId, UserId) в таблице PostLikes с помощью SqlDataAdapter
, если строка найдена, я использую SqlCommandBuilder.GetDeleteCommand()
для создания инструкции удаления и удаления базовой строки, если строка не найден, используя SqlCommandBuilder.GetInsertCommand()
для генерации команды вставки и вставки строки в таблицу с помощью SqlDataAdapter.Update()
. Но строка не будет вставлена в таблицу в database.Here является то, что я сделал до сих пор
SqlDataAdapter.update() не обновляет базу данных
SqlConnection con = new SqlConnection(connectionStrings);
SqlDataAdapter sqlDataAdapter=new SqlDataAdapter("select * from PostLikes where PostId like "+postlike.PostId+" and UserId like "+postlike.UserId,con);
DataSet ds = new DataSet();
sqlDataAdapter.Fill(ds, "Result");
con.Open();
SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter);
if(ds.Tables["Result"].Rows.Count==1)
{
sqlDataAdapter.DeleteCommand = sqlCommandBuilder.GetDeleteCommand(true);
msg = "Data is deleted";
}
else
{
sqlDataAdapter.InsertCommand = sqlCommandBuilder.GetInsertCommand(true);
msg = "Data is inserted";
}
sqlDataAdapter.Update(ds, "Result");
и стол
PostLikes (LikeId, сообщения дан, UserId)
is con.Open() необходим с SqlDataAdapter? – Vivek
Хорошая точка - нет, она может [обнаруживать закрытое соединение и открывать его автоматически] (https://msdn.microsoft.com/en-us/library/377a8x4t.aspx). Но, очевидно, вам нужно будет вручную открыть соединение, если вы также используете только базовый/прямой 'SqlCommand' – StuartLC
, да, я думал то же самое. Большое спасибо. – Vivek