我收到此错误:
附加信息:参数化查询'(@ kelime nvarchar(4000))SELECT baslik FROM haberEn WHERE baslik'期望参数' @ kelime',未提供
为什么我会收到这样的错误?我该如何解决?
我的SQL命令和C#代码:
if (requesturl.Contains('-'))
{
string[] aramaParcala = requesturl.Split('-');
foreach (string parcalanan in aramaParcala)
{
aranacak = aranacak + " " + parcalanan;
}
}
baglanti.Open();
komut.CommandType = CommandType.Text;
komut.CommandText=
" SELECT baslik FROM haberEn WHERE baslik like '%' + @kelime + '%' "+
" UNION " +
" SELECT yazi FROM haberEn WHERE yazi like '%' + @kelime + '%' " +
" UNION" +
" SELECT baslik FROM kaynakEn WHERE baslik like '%' + @kelime + '%' " +
" UNION" +
" SELECT yazi FROM kaynakEn WHERE yazi like '%' + @kelime + '%' Order By baslik ASC";//yazi LIKE '%' + @kelime + '%'
komut.Parameters.AddWithValue("@kelime",aranacak);
答案 0 :(得分:2)
因为haberEn
和kaynakEn
的列数和数据类型应匹配。
如果可能,请仅选择您需要的字段,或告诉数据库如何订购它们:
SELECT col1, col2, col3 FROM haberEn
union
SELECT col1, col4, col3 FROM kaynakEn
-- note the different order of columns to match those of haberEn.
答案 1 :(得分:0)
表中不是有不同数量的字段吗?
至少,你应该从每个表中“选择”相同数量的列。
答案 2 :(得分:0)
Union要求表格具有相同的列数。
如果所有表的列数相同,请检查其中一个结果是否为空。