2013-09-04 4 views
0

J'ai créé l'éditeur de table SQL pour ajouter des informations dans certaines colonnes. Mais une colonne est définie sur "DateTime" dans et l'application ne peut pas l'écrire. Voici le code:SQL Table Edit: Ajouter la valeur DateTime dans la table

private void button2_Click(object sender, EventArgs e) 
    { 


try 

{ 
    string connectionString = @"Data Source=" + textBox4.Text + ";" + "Initial Catalog=" + textBox1.Text + ";" + "User ID=" + textBox2.Text + ";" + "Password=" + textBox3.Text; 
    using (SqlConnection connection = new SqlConnection(connectionString)) 
    using (SqlCommand command = connection.CreateCommand()) 
    { 
     command.CommandText = "INSERT INTO user_ban (char_id, status, ban_date, ban_hour, ban_end) VALUES (@char_id, @status, DateTime @ban_date, @ban_hour, @ban_end)"; 

     command.Parameters.AddWithValue("@char_id", "1"); 
     command.Parameters.AddWithValue("@status", "1");   
     command.Parameters.AddWithValue("@ban_date", "1"); 
     command.Parameters.AddWithValue("@ban_hour", "1"); 
     command.Parameters.AddWithValue("@ban_end", "1");    
     connection.Open(); 
     command.ExecuteNonQuery(); 
     MessageBox.Show("Char Banned"); 
    } 
} 
catch (SqlException ex) 
{ 
    MessageBox.Show(ex.Message); 
} 
} 

La colonne 'ban_date' est définie sur DateTime. Merci!

+1

Si colonne '' ban_date' est DateTime', pourquoi vous voulez insérer 1' 'lui? N'a pas de sens. '1' n'est pas un' DateTime' valide. –

+0

votre table columsn est-elle définie sur datetimes? Je vous vois passer "1" comme une date est-ce correct? – lemunk

+1

La deuxième erreur est ici: '... VALUES (...., DateTime @ban_date, ....' Ne pas spécifier le type de données dans 'VALUES' –

Répondre

4

"1" n'est pas une date. Essayez de passer une date à elle

command.Parameters.AddWithValue("@ban_date", DateTime.Today); 

et retirez la DateTime de la chaîne de commande

command.CommandText = "INSERT INTO user_ban 
         (char_id, status, ban_date, ban_hour, ban_end) 
         VALUES 
         (@char_id, @status, @ban_date, @ban_hour, @ban_end)"; 
+0

Merci! –

0

Si ban_date colonne est DateTime, pourquoi vous voulez insérer 1 à elle? N'a pas de sens. 1 n'est pas un DateTime valide du tout. Changez-le en une valeur DateTime valide. Deuxièmement, vous ne devez pas utiliser de type valeur dans votre pièce VALUES. Changer de

command.CommandText = "INSERT INTO user_ban (char_id, status, ban_date, ban_hour, ban_end) 
         VALUES (@char_id, @status, DateTime @ban_date, @ban_hour, @ban_end)"; 
                ^^^^^^^^^//delete this 

à

command.CommandText = "INSERT INTO user_ban (char_id, status, ban_date, ban_hour, ban_end) 
         VALUES (@char_id, @status, @ban_date, @ban_hour, @ban_end)"; 
Questions connexes