[英]c# subquery not working
I like to add subquery to mysql database, but it gives me error.我喜欢将子查询添加到 mysql 数据库,但它给了我错误。
string q = "INSERT INTO table1(isbn,date,ID,title)
values('" + this.textBoxisbn.Text + "','" + this.dateTimePicker1.Value.ToString("yyyy-MM-dd") + "','" + this.textBoxk.Text + "'(select title from books where isbn=" + textBox1.Text + "')'" + "');";
You are missing a comma. 您缺少逗号。 Add +","+
before your sub-query. 在子查询之前添加+","+
。
string q = "INSERT INTO table1(isbn,date,ID,title)
values('" + this.textBoxisbn.Text + "','" +
this.dateTimePicker1.Value.ToString("yyyy-MM-dd") + "','" +
this.textBoxk.Text + "','" + "'(select title from books
where isbn=" + textBox1.Text + "')'" + "');";
Tip : It would be better to use placeholders in your query along with prepared statements rather than doing this ('" + this.textBoxisbn.Text + "','"...
提示 :最好在查询中使用占位符以及准备好的语句,而不要这样做('" + this.textBoxisbn.Text + "','"...
Make the query readable with a help of verbatim strings and string interpolation : 借助逐字字符串和字符串插值使查询可读 :
string q =
$@"INSERT INTO table1(
Isbn,
Date,
ID,
Title)
VALUES(
'{textBoxisbn.Text}',
'{dateTimePicker1.Value.ToString("yyyy-MM-dd")}',
'{textBoxk.Text}',
(SELECT Title
FROM Books
WHERE Isbn = '{textBox1.Text}'))";
and you'll easily find out all syntax errors in the query. 并且您将轻松找出查询中的所有语法错误。 Further improvement is changing the query into parametrized one: 进一步的改进是将查询更改为参数化查询:
string q =
$@"INSERT INTO table1(
Isbn,
Date,
ID,
Title)
VALUES(
@prm_Isbn,
@prm_Date,
@prm_Id,
(SELECT Title
FROM Books
WHERE Isbn = @prm_IsbnForTitle))";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.