嗨,我正在将行从一个数据库导入到另一个数据库,以使用下面的代码,但是当我到达数据创建点时,我收到了以下抛出的异常 Exception:System中的'System.Data.SqlClient.SqlException'。 Data.dll
我该如何解决?
错误行: myCommand.Parameters.AddWithValue("@DataCreazione",SqlDbType.DateTime).Value = DataCreazione;
C#代码:
string dbserver2 = textBox4.Text;
string dbname2 = textBox1.Text;
string dbusername2 = textBox2.Text;
string dbpassword2 = textBox3.Text;
SqlConnection conn = new SqlConnection("Data Source=" + dbserver2 + ";Initial Catalog=" + dbname2 + ";User ID=" + dbusername2 + ";Password=" + dbpassword2 + "");
conn.Open();
String sql1 = "SELECT IdUtente,Longitudine,Latitudine,Stato,DataCreazione FROM dbo.Marcatura where IdMarcatura > 6661 order by convert(datetime, DataCreazione, 103) ASC";
SqlCommand cmd = new SqlCommand(sql1, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
/*DB2*/
string dbserver = textBox5.Text;
string dbname = textBox8.Text;
string dbusername = textBox7.Text;
string dbpassword = textBox6.Text;
SqlConnection conn2 = new SqlConnection("Data Source=" + dbserver + ";Initial Catalog=" + dbname + ";User ID=" + dbusername + ";Password=" + dbpassword + "");
conn2.Open();
int conta = 0;
if (dt.Rows.Count != 0)
{
foreach (DataRow dr in dt.Rows)
{
try
{
int IdUtente = int.Parse(dr["IdUtente"].ToString());
decimal Longitudine = decimal.Parse(dr["Longitudine"].ToString());
decimal Latitudine = decimal.Parse(dr["Latitudine"].ToString());
String Stato = dr["Stato"].ToString();
String DataCreazione = dr["DataCreazione"].ToString();
// MessageBox.Show("IdUtente: " + IdUtente + "\n Longitudine: " + Longitudine + "\n Latitudine" + Latitudine + "\n Stato: " + Stato + "\n DataCreazione: " + DataCreazione);
string queryfinal = "INSERT INTO Marcatura(IdUtente,Longitudine,Latitudine,Stato,DataCreazione) VALUES(@IdUtente,@Longitudine,@Latitudine,@Stato,@DataCreazione)";
SqlCommand myCommand = new SqlCommand(queryfinal, conn2);
myCommand.Parameters.AddWithValue("@IdUtente", IdUtente);
myCommand.Parameters.AddWithValue("@Longitudine", Longitudine);
myCommand.Parameters.AddWithValue("@Latitudine", Latitudine);
myCommand.Parameters.AddWithValue("@Stato", Stato);
myCommand.Parameters.AddWithValue("@DataCreazione", SqlDbType.DateTime).Value = DataCreazione; /* <--- ERROR LINE */
myCommand.ExecuteNonQuery();
}
catch (Exception ex)
{
conta++;
}
}
MessageBox.Show("Totale errori: " + conta);
}
答案 0 :(得分:0)
如果两个数据库中的DataCreazione
都是DateTime
列,则可以使用原始值而不将其转换为String
:
myCommand.Parameters.AddWithValue("@DataCreazione", SqlDbType.DateTime).Value = dr["DataCreazione"];
答案 1 :(得分:0)
尝试替换:
myCommand.Parameters.AddWithValue("@DataCreazione", SqlDbType.DateTime).Value = DataCreazione;
使用:
myCommand.Parameters.AddWithValue("@DataCreazione",Convert.ToDateTime(DataCreazione));