C#Windows窗体(我只需要打印窗体Crystal Report 1个用户)

时间:2019-03-11 15:13:15

标签: c# ms-access

我正在尝试从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");

有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

不要将撇号定界符用于数字类型字段标准,它们用于文本字段。这会导致“数据类型不匹配”错误。

string cs = "select * from Sign_Up where ID=" + textBox1.Text;

如果项目具有任何公共访问权限(Web,远程用户),则参数的使用至关重要。 sal是声明的参数变量,而@表示在SQL语句中使用参数。