[英]In c#, how to assign a sql query result within a variable?
SqlConnection connection = new SqlConnection(connString.ToString());
string select = "SELECT (CASE WHEN MAX(page_no) IS NULL THEN 1 ELSE MAX(page_no)+1 END) FROM dbo.BOOK";
string insert = "INSERT INTO dbo.BOOK (book_id,select) VALUES (121,4)";
SqlCommand sqlCommand = new SqlCommand(insert,connection);
insert.ExecuteNonQuery();
这里我得到了插入包含无效字符串选择的异常。 请告诉我如何在插入中分配子查询?
你做错了,你必须在SQLCommand
对象上执行查询而不是在字符串对象上试试这个
using(SqlConnection connection = new SqlConnection(connString.ToString())){
string insert = "Insert Query";
using (SqlCommand sqlCommand = new SqlCommand(insert,connection))
{
con.Open();
int i = sqlCommand.ExecuteNonQuery();
}
}
var selectQuery = "SELECT (CASE WHEN MAX(page_no) IS NULL THEN 1 ELSE MAX(page_no)+1 END) FROM dbo.BOOK";
var insertQuery = string.format("INSERT INTO dbo.BOOK (book_id,{0}) VALUES (121,4)",selectQuery);
您的查询结果将返回一个DataTable
。 因此,使用DatAdapter
填充DataTable
。
如果要使用必须在单个语句中的子查询,则不能使用这样的select语句
但是在上面的语句中,您可以使用不同的语句编写选择和插入查询。
所以cmd.ExecuteNonquery()
只执行insert
文本语句,因此SQL引擎无法找到SELECT
(而SELECT是一个保留关键字)所以它会给你一个错误
如果你使用子查询试试这个
SqlConnection connection = new SqlConnection(connString.ToString());
string select = "SELECT 121, (CASE WHEN MAX(page_no) IS NULL THEN 1 ELSE MAX(page_no)+1 END) FROM dbo.BOOK";
string insert = "INSERT INTO dbo.BOOK (book_id,[select]) "+select;
SqlCommand sqlCommand = new SqlCommand(insert,connection);
sqlCommand.ExecuteNonQuery();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.