且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何导出具有特定名称的csv文件?

更新时间:2023-11-30 11:32:34

你不想做更像这样的事吗?

还有一个建议不要t'+'sql查询的字符串。使用参数;)。





  for  int  icount =  0 ; icount <  =  400 ; icount ++)
{
string wardName = saiNathHospitalDataSet。表[ PatientTable]。行[i] [ WARD NAME]。ToString();

switch (wardName)
{
case GENERAL WARD(FEMALE)
DataExport( 从PatientTable中选择*,其中[WARD NAME] = + o + GENF.csv) ;
break ;

case GENERAL WARD (MALE)
DataExport( select * from PatientTable,其中[WARD NAME] = + o + GENM.csv);
break ;

等.......
}
catch {}
}


I want to export csv file from the database by specific names, such as the data of patient contains "Ward name" field as "GENERAL WARD (FEMALE)" then the gererated file name must be "GENF.csv ".I tried with switch case but not working. if there is any changes please edit.

thanks.


**here is the code sniped**

public void ExportAll()//Function declares methods to export//
 {
   try
   {
     int i = 0;
     for (int icount = 0; icount <= 400; icount++)
     {
       Object o = saiNathHospitalDataSet.Tables["PatientTable"].Rows[i]["WARD NAME"];
        Object obj = saiNathHospitalDataSet.Tables["PatientTable"].Rows[i]["PTNAME"];

     int swichexpression = 9;
     Object a = "GENERAL WARD (FEMALE)";
      Object b = "GENERAL WARD (MALE)";
     Object c = "RECOVERY";
     Object d = "SEMI DELUXE 02";
      Object e = "SEMI DELUXE 05";
      Object f = "SEMI DELUXE 06";
      Object g = "ICU";
       Object h = "SEMI SPECIAL 03";
         Object j = "SEMI SPECIAL 01";

      switch (swichexpression)
      {
         case 1 :
         if (o == a)
         {
         // o = "GENF";
          DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "GENF.csv");
         }
            break;

         case 2 :
             if (o == b)
             {
              // o = "GENM";
               DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "GENM.csv");
               }
               break;

            case 3 :
               if (o == c)
                {
                    //o = "REC";
                 DataExport("select * from PatientTable where [WARD NAME] ="  + o + "", "REC.csv");
                 }
                    break;

                 case 4 :
                 if (o == d)
                 {
               // o = "SDELX02";
                  DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "SDELX02.csv");
                  }
                   break;

                  case 5 :
                      if (o == e)
                      {
                    // o = "SDELX05";
                       DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "SDELX05.csv");
                        }
                     break;

                     case 6 :
                         if (o == f)
                         {
                          // o = "SDELX06";
                            DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "SDELX06.csv");
                             }
                           break;

                        case 7 :
                           if (o == g)
                           {
                               //o = "ICU";
                               DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "ICU.csv");
                           }
                           break;

                       case 8 :
                           if (o == h)
                           {
                               //o = "SSPEC03";
                               DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "SSPEC03.csv");
                           }
                           break;

                       case 9 :
                           if (o == j)
                           {
                               //string z = "SSPEC01";
                               DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "SSPEC01.csv");
                           }
                           break;
                         }
              //DataExport("select * from PatientTable", "" + s + ".csv");
                   i++;
               }
        }
        catch {}
    }



**here is the data export method,**

public void DataExport(string SelectQuery, string fileName)
{
 try
 {
     using (var dt = new DataTable())
     {
      using (var da = new SqlDataAdapter(SelectQuery, con))
      {
        da.Fill(dt);

       var header = String.Join(
        ",",
       dt.Columns.Cast<DataColumn>().Select(dc => dc.ColumnName));

          var rows =
        from dr in dt.Rows.Cast<DataRow>()
        select String.Join(
            ",",
        from dc in dt.Columns.Cast<DataColumn>()
        let t1 = Convert.IsDBNull(dr[dc]) ? "" : dr[dc].ToString()
            let t2 = t1.Contains(",") ? String.Format("\"{0}\"", t1) : t1
         select t2);

        using (var sw = new StreamWriter(txtreceive.Text + "\\" +     fileName))
        {
             sw.WriteLine(header);
            foreach (var row in rows)
           {
             sw.WriteLine(row);
            }
         sw.Close();
          }
          }
         }
         }
       catch { }
     }

Don't you want to do something more like this?
And one more advice don't '+' the string for sql queries. Use parameters ;).


for (int icount = 0; icount <= 400; icount++)
{
string wardName = saiNathHospitalDataSet.Tables["PatientTable"].Rows[i]["WARD NAME"].ToString();

    switch (wardName)
    {
        case "GENERAL WARD (FEMALE)" :
            DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "GENF.csv");
        break;

        case "GENERAL WARD (MALE)" :
               DataExport("select * from PatientTable where [WARD NAME] =" + o + "", "GENM.csv");
        break;

        etc.......
    }
    catch {}
}