我正在尝试从Crystal报告中打印,但出现错误。这是我想pic 要做的照片。文本框用于用户标识。当我键入ID时,然后按一下按钮,我只想打印该用户信息。 这是我的代码
if (conect.State != ConnectionState.Open)
{
conect.Open();
}
string cs = "select * from Sign_Up where ID='"+textBox1.Text+"'";
OleDbCommand command = new OleDbCommand(cs, conect);
OleDbDataAdapter adap = new OleDbDataAdapter(command);
DataSet ds = new DataSet();
adap.Fill(ds, "Sign_Up");
CrystalReport1 crs1 = new CrystalReport1();
crs1.SetDataSource(ds.Tables["Sign_Up"]);
crs1.SetDataSource(ds);
crystalReportViewer1.ReportSource = crs1;
conect.Close();
crystalReportViewer1.Refresh();
这是我的错误
System.Data.OleDb.OleDbException:“条件表达式中的数据类型不匹配。”
使用此代码adap.Fill(ds, "Sign_Up");
有人有什么建议吗?
答案 0 :(得分:0)
不要将撇号定界符用于数字类型字段标准,它们用于文本字段。这会导致“数据类型不匹配”错误。
string cs = "select * from Sign_Up where ID=" + textBox1.Text;
如果项目具有任何公共访问权限(Web,远程用户),则参数的使用至关重要。 sal
是声明的参数变量,而@
表示在SQL语句中使用参数。