0

我有一个包含一个字段名称记录日期的 excel 文件。现在我正在将数据从 excel 表传输到 sql 表,但是有一个问题。

如何在sql表的日期时间数据类型中转换excel表的记录日期字段。

我想将该 Excel 工作表数据存储在使用数据类型 datetime 归档的 sql 表中。这是代码。

    string strFileName = Path.GetFileName(ddlExcelFile.SelectedValue);
    OleDbConnection oconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/ExcelSheets/" + strFileName) + ";Extended Properties='Excel 12.0;HDR=YES';");
    try
    {
        //After connecting to the Excel sheet here we are selecting the data
        //using select statement from the Excel sheet
        OleDbCommand ocmd = new OleDbCommand("select * from [System Users$]", oconn);
        oconn.Open(); //Here [Sheet1$] is the name of the sheet
        //in the Excel file where the data is present
        OleDbDataReader odr = ocmd.ExecuteReader();
        string LoginID = "";
        string FirstName = "";
        string LastName = "";
        string Email = "";
        string IsActive="";
        string LastUpdateOn;
        string ProjectAccess = "";
        while (odr.Read())
        {
            LoginID = valid(odr, 0);//Here we are calling the valid method
            FirstName = valid(odr, 1);
            LastName = valid(odr, 2);
            Email = valid(odr, 3);
            IsActive = valid(odr, 4);
            LastUpdateOn = valid(odr, 5);
            ProjectAccess = valid(odr, 6);
            //Here using this method we are inserting the data into the database
            insertdataintosql(LoginID, FirstName, LastName, Email, IsActive, LastUpdateOn, ProjectAccess);
        }
        oconn.Close();
    }
    catch (DataException ee)
    {
        lblmsg.Text = ee.Message;
        lblmsg.ForeColor = System.Drawing.Color.Red;
    }
    finally
    {
        lblmsg.Text = "Data Inserted Sucessfully";
        lblmsg.ForeColor = System.Drawing.Color.Green;
    }
}

protected string valid(OleDbDataReader myreader, int stval)//if any columns are
//found null then they are replaced by zero
{
    if(stval==4)
    {
        object val = myreader[stval];

        if (Convert.ToInt32(val)==1)
            return Convert.ToString(true);
        else
            return Convert.ToString(false);
    }        
    else
    {
        object val = myreader[stval];
        if (val != DBNull.Value)
            return val.ToString();
        else
            return Convert.ToString(0);
    }
}

public void insertdataintosql(string LoginID, string FirstName, string LastName, string Email, string IsActive, string LastUpdateOn, string ProjectAccess)
{//inserting data into the Sql Server
    SqlConnection conn = new SqlConnection("Data Source=NET07;Integrated Security=False;Initial Catalog=IrisDevon; User Id=sa; password=kk;");
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = "insert into ImportSystemUsers(UserName,FirstName,LastName,Email,IsActive,LastUpdateOn)values(@UserName,@FirstName,@LastName,@Email,@IsActive,@LastUpdateOn)";
    cmd.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = LoginID;
    cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar).Value = FirstName;
    cmd.Parameters.Add("@LastName", SqlDbType.NVarChar).Value = LastName;
    cmd.Parameters.Add("@Email", SqlDbType.NVarChar).Value = Email;
    cmd.Parameters.Add("@IsActive", SqlDbType.Bit).Value =Convert.ToBoolean(IsActive);
    string dt1 = Convert.ToDateTime(LastUpdateOn.Trim()).ToString();
    cmd.Parameters.Add("@LastUpdateOn", SqlDbType.DateTime).Value = dt1;//error here
    cmd.Parameters.Add("@ProjectAccess", SqlDbType.NVarChar).Value = ProjectAccess;
    cmd.CommandType = CommandType.Text;
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
}

正如我在发生错误的代码中提到的那样。

4

0 回答 0