Свод SQL - < /p>
Код: Выделить всё
DELETE FROM [table_name]
WHERE id = 'some_id';
< /code>
, что довольно просто. < /p>
idВо -первых, чтобы убедиться, что только 1 строка с этим идентификатором существует, был сделан этот выбор , который не возвращает ошибок
Код: Выделить всё
SELECT *
FROM [table_name]
WHERE id = 'some_id';
< /code>
Возвращает 1 строку < /p>
Ошибка в Delete < /code> IS < /p>
system.data.sqlclient.sqlexception (0x80131904): Subquery вернул более 1 значения. Это не допускается, когда подзадность следует за следующим =,! =, = =, Или когда подпрограмма используется в качестве выражения. запрос; Очевидно, что здесь не так
Что загадает, так это то, что выполнение того же запроса Delete C# код, который вызывает Delete :
Код: Выделить всё
public int execute(string sql)
{
SqlConnection conn = new SqlConnection(conn_str);
try
{
conn.Open();
SqlCommand command = new SqlCommand(sql, conn);
command.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return -1;
}
return 0;
}
Код: Выделить всё
public List select(string sql)
{
Stopwatch sw = new Stopwatch();
sw.Start();
List rows = null;
SqlConnection conn = new SqlConnection(conn_str);
try
{
conn.Open();
SqlDataReader reader = null;
SqlCommand command = new SqlCommand(sql, conn);
reader = command.ExecuteReader();
int nbr_cols = reader.FieldCount;
int nbr_rows = 0;
rows = new List();
while (reader.Read())
{
nbr_rows++;
List col = new List();
for (int idx_col = 0; idx_col < nbr_cols; idx_col++)
{
string str = reader[idx_col].ToString();
col.Add(str);
}
rows.Add(col);
}
reader.Close();
conn.Close();
sw.Stop();
Console.WriteLine("Time to get {0} rows: {1} msec", nbr_rows, sw.ElapsedMilliseconds);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return rows;
}
< /code>
c ++ Удалить код без ошибки < /p>
std::string sql = "DELETE FROM [some_table] WHERE ID='some_id';";
if (query.exec_direct(sql) < 0)
{
std::cout https://learn.microsoft.com/en-us/sql/t-sql/statements/delete-transact-sql?view=sql-server-2017
Подробнее здесь: [url]https://stackoverflow.com/questions/53108796/delete-c-sharp-sqlcommand-subquery-returned-more-than-1-value[/url]
Мобильная версия