0

テキストから挿入してExcelにデータを追加しますが、常に文字列形式で表示されます。フロート形式(0.2、1、20)が必要で、Excelでそれらを変更できません(たとえば、一度に列を変更できますが、すべてのセルに対して1つずつ変更できます)。tryparse または converttoint32 func を試しました。しかし、Excelでは何も変わりません。数字はまだテキスト形式です..

public void ExcelWrite(string date, string station_name, string station_no, string xvaluee) 

{

        try
        {   float j;
            xvaluee=xvaluee.Trim();
            float.TryParse(Valuee, out j);
            string szConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C://data.xls';Extended Properties='Excel 8.0;HDR=YES'";
            OleDbConnection conn = new OleDbConnection(szConn);

            conn.Open();
            OleDbCommand cmd = new OleDbCommand("INSERT INTO [Sayfa1$]([Station_No],[Station_Name],[Date],[Valuee]) VALUES('" + station_no + "','" + station_name + "','" + date + "','" + j  + "')", conn);
            cmd.ExecuteNonQuery();


            conn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }



     }
4

1 に答える 1

1

''パラメータごとに追加するため、すべてが次のようになりますstrings

以下のようにパラメータを使用します

using(OleDbConnection cn = new OleDbConnection(szConn ))
{
    cn.Open();
    OleDbCommand cmd1 = new OleDbCommand("INSERT INTO [Sayfa1$]([Station_No],[Station_Name],[Date],[Valuee]) VALUES(?,?,?,?)", cn);
   cmd1.Parameters.AddWithValue("@p1", station_no );
   cmd1.Parameters.AddWithValue("@p2", station_name );
   cmd1.Parameters.AddWithValue("@p3",date );
   cmd1.Parameters.AddWithValue("@p4", j);
   cmd1.ExecuteNonQuery();
}
于 2013-09-13T06:54:35.517 に答える