执行下面代码结果不是自己想的:预想的是生成一个Y20100525000002.DBF;结果生成的是Y2010052.DBF!
string str_oleConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\;Extended Properties=dBASE IV;";         System.Data.OleDb.OleDbConnection ole_conn = new System.Data.OleDb.OleDbConnection (str_oleConn);        try
        {
            ole_conn.Open();            string table = "Y" +20100525000002+ ".DBF";
            // object table1 = @"F:\Y" + tim + this.txtHisZyh .Text .Trim ()+".dbf";
             string creat = "Create Table " + table + " (FLMC char(20), FLDM char(3),JZFY double ,ZFFY double)";
             System.Data.OleDb.OleDbCommand cmd1 = new System.Data.OleDb.OleDbCommand
                    (creat, ole_conn);
            File.Delete(table );

解决方案 »

  1.   

    20100525000002这是个常量吗?
    为什么不直接写在字符串里?
    string table = "Y20100525000002.DBF";
      

  2.   

    20100525000002这是个常量吗?
    为什么不直接写在字符串里?
    string table = "Y20100525000002.DBF";
      

  3.   

    string str_oleConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\;Extended Properties=dBASE IV;";    System.Data.OleDb.OleDbConnection ole_conn = new System.Data.OleDb.OleDbConnection (str_oleConn);  try
      {
      ole_conn.Open();  string table1 = @"F:\Y" + tim + this.txtHisZyh .Text .Trim ()+".dbf";
    MessageBox.Show(table1);
      string creat = "Create Table " + table1 + " (FLMC char(20), FLDM char(3),JZFY double ,ZFFY double)";
      System.Data.OleDb.OleDbCommand cmd1 = new System.Data.OleDb.OleDbCommand
      (creat, ole_conn);
      File.Delete(table1 );
      

  4.   

    MessageBox.Show(table1);输出的是Y20100525000002.DBF,但是结果还是2010052.DBF
      

  5.   

    先看看在这一步加个断点,看看table1是个啥,如果是Y20100525000002.DBF那么再往下找。
    object table1 = @"F:\Y" + tim + this.txtHisZyh .Text .Trim ()+".dbf";
      

  6.   


    先加个断点object table1 = @"F:\Y" + tim + this.txtHisZyh .Text .Trim ()+".dbf";
    看看table1的值是不是Y20100525000002.DBF。如果不是在往下面找其他的地方