2017-01-27 2 views
-1

日付は(23.02.2015) のように見える文字列をプロブラムに挿入して、データグリッドビューからローカルデータベースの日付カラムに挿入することです。データベースの日付欄に日付のように見える文字列を挿入

私は私の文字列 "23.02.2015"を23/02/2015に転送し、それを日付変数に変換する必要があることを知っています。私はそれをデータベースの日付列に挿入します。しかし、 :短い中

private void button3_Click(object sender, EventArgs e) 
    { 

      foreach (DataGridViewRow row in dataGridView1.Rows) 
      { 
       string constring = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\john\Documents\Visual Studio 2015\Projects\Project\Project\DB.mdf;Integrated Security=True"; 
       using (SqlConnection con = new SqlConnection(constring)) 
       { 

        using (SqlCommand cmd = new SqlCommand("INSERT INTO ResultsTable VALUES(@Date, @TagNumber)", con)) 
        { 
         cmd.Parameters.AddWithValue("@Date", row.Cells["Exposure Date"].Value); 
         cmd.Parameters.AddWithValue("@TagNumber", row.Cells["Device #"].Value); 

         cmd.ExecuteNonQuery();  
        } 


       } 
      } 

     MessageBox.Show("Records inserted."); 

    } 

- 私のコードでは、私のデータベースの日付欄にそれを挿入することが23/05/2014のような日付型に「2014年5月23日」のような文字列を変換するproblamを持つイム。

+0

'Convert.ToDateTime(Regex.Replace(input、"。 "、"/"))'のような文字列を挿入する前に文字列を自動的にdatetimeに変換しますか? –

+0

はい!私のコードでは、この行をどこに挿入するのですか? – shlezz

答えて

1

文字列の日付が常に指定された形式である場合、これはあなたのためのトリックを行うかもしれません。 DateTime.ParseExact指定された書式とカルチャ固有の書式情報を使用して、指定された日付と時刻の文字列表現を、対応するDateTimeに変換します。文字列表現の形式は、指定された形式と正確に一致する必要があります。

string smdt = row.Cells["Exposure Date"].Value; 
//This is the string format which is going to parse the Date 
string format = "dd.MM.yyyy"; 
DateTime dt = DateTime.ParseExact(smdt, format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal); 

、その後

cmd.Parameters.AddWithValue("@Date", dt); 
+0

ありがとう!今すぐうまくいく!! – shlezz

+0

@shlezzを手伝って幸せです:)ハッピーコーディング功績 –

-1

コードの下に試してみてください:

string stringDate = "23.02.2015"; // Hold your string date here (row.Cells["Exposure Date"].Value) 
DateTime date = DateTime.ParseExact(stringDate, "dd.MM.yyyy", CultureInfo.InvariantCulture); 

このあなたの文字列の日付(stringDateが)日時(日付)オブジェクトに変換されます、そしてあなたがこれを渡すことができます日付ストアドプロシージャパラメータへのオブジェクト。

私は、この( "dd.MM.yyyy")形式で常に文字列の日付を取得していると思います。それ以外の場合は、文字列形式ごとに変更する必要があります。

これが役に立ったら教えてください。

+0

それは私の答えとどのように違うのですか? –

+0

私はちょうど見た、あなたは同じ答えを投稿..さらに、私の前に約7から8分。それで、思うのは簡単です。あなたの答えを修正して、再投稿しました。 しかし、私の友人を信じて、これはそうではありませんでした。実際に私がこの質問を見つけたときに、答えは1つではありませんでしたが、10分以上かかりました。私の答えを掲示し、窓をリフレッシュすることなく、今日私はこれを見ている。 申し訳ありません。 –

関連する問題