1

我有一个我正在查看的 ASP.net 项目,他们想使用 MySQL。我习惯了 SQL 服务器,但使用 mySQL 应该不是问题。

通常,该控件希望绑定到 SqlDataSource,但 MySQL 不提供该控件(来自此站点上的其他帖子)。

连接 MySQL 和 DevExpress ASPxScheduler 以便创建约会的最佳方式是什么?

4

2 回答 2

3

为什么不使用 ObjectDataSource 并编写数据层?或者使用 LLBLGen,我认为它适用于 MySQL。我看到的一个警告是 MySQL ODBC 和 ADO 驱动程序存在元数据问题。

于 2009-01-03T06:05:36.240 回答
1

我最终使用了 objectdatasource 和 ObjectCreated 方法,并编写了数据层以将记录插入 mysql 数据库。我已经包含了我的代码,以防有人需要一些逻辑帮助。

protected void appointmentsDataSource_ObjectCreated(object sender, ObjectDataSourceEventArgs e)
    {
        e.ObjectInstance = new CustomEventDataSource(GetCustomEvents());
    }

  public void InsertAppointment()
    {

        //need to reformat the dates
        string tempStartDate;
        string tempStartMinutes;

        if (appointmentobject.Start.Minute.ToString().Length == 1)
        {
            tempStartMinutes = "0" + appointmentobject.Start.Minute.ToString();
        }
        else
        {
            tempStartMinutes = appointmentobject.Start.Minute.ToString();
        }

        tempStartDate = AppointmentObject.Start.Year + "-"
            + AppointmentObject.Start.Month + "-"
            + appointmentobject.Start.Day + " "
            + appointmentobject.Start.Hour + ":"
            + tempStartMinutes;

        string tempEndDate;
        string tempEndMinutes;

        if (appointmentobject.End.Minute.ToString().Length == 1)
        {
            tempEndMinutes = "0" + appointmentobject.End.Minute.ToString();
        }
        else
        {
            tempEndMinutes = appointmentobject.End.Minute.ToString();
        }

        tempEndDate = AppointmentObject.End.Year + "-"
            + AppointmentObject.End.Month + "-"
            + appointmentobject.End.Day + " "
            + appointmentobject.End.Hour + ":"
            + tempEndMinutes;

        //TODO Add CustomField : Need to add to this Insert Statement

        //Change the appointment subject
        string NewSubject = AppointmentObject.CustomFields["fldFirstName"]
            + ", " + AppointmentObject.CustomFields["fldLastName"]
            + ", " + AppointmentObject.CustomFields["fldClassID"]
            + ", " + AppointmentObject.CustomFields["fldPhoneNumberDay"];

        string mySQLQueryString = @"INSERT INTO appointment (StartDate,EndDate,Subject,Status,Description,label,location,Type,FirstName,
            LastName,PhoneNumberDay,PhoneNumberEvening,DriversLicenseNumber,Email,RentalCar,Payment,ConfirmationNumber,
            PermitNumber,ClassID,CreateDate,CreateUser,NoticeToReport) 
            VALUES('" + tempStartDate + "','"
            + tempEndDate + "', '"
            //+ AppointmentObject.Subject + "',"
            + NewSubject + "',"
            + AppointmentObject.StatusId + ",'"
            + AppointmentObject.Description + "',"
            + AppointmentObject.LabelId + ", '"
            + AppointmentObject.Location + "',"
            + "0, '" //type
            + AppointmentObject.CustomFields["fldFirstName"] + "','" 
            + AppointmentObject.CustomFields["fldLastName"] + "','"
            + AppointmentObject.CustomFields["fldPhoneNumberDay"] + "','"
            + AppointmentObject.CustomFields["fldPhoneNumberEvening"] + "','"
            + AppointmentObject.CustomFields["fldDriversLicenseNumber"] + "','"
            + AppointmentObject.CustomFields["fldEmail"] + "',"
            + AppointmentObject.CustomFields["fldRentalCar"] + ","
            + AppointmentObject.CustomFields["fldPayment"] + ",'"
            + AppointmentObject.CustomFields["fldConfirmationNumber"] + "','"
            + AppointmentObject.CustomFields["fldPermitNumber"] + "',"
            + AppointmentObject.CustomFields["fldClassID"] + ", '"
            //ignore create date for now.
            //+ AppointmentObject.CustomFields["fldCreateDate"] + "', '"
            + "2009-01-01 12:00', '"
            + AppointmentObject.CustomFields["fldCreateUser"] + "', "
            + AppointmentObject.CustomFields["fldNoticeToReport"] + ")";

        MySqlConnections test = new MySqlConnections();
        test.InsertRow(mySQLQueryString);

    }

public class MySqlConnections
{
    private static string DriverConnectionString = "Database=driverexam;Data Source=localhost;User Id=ART;Password=art01";

    public DataSet SelectRows(DataSet dataset, string query, string tablename)
    {
        MySqlConnection conn = new MySqlConnection(DriverConnectionString);

        MySqlDataAdapter adapter = new MySqlDataAdapter();
        adapter.SelectCommand = new MySqlCommand(query, conn);
        adapter.Fill(dataset, tablename);

        conn.Close();
        return dataset;
    }

    public bool InsertRow(string query)
    {
     //   MySqlConnection conn = new MySqlConnection(DriverConnectionString);

        MySqlConnection conn = new MySqlConnection();
        MySqlCommand cmd = new MySqlCommand();

        conn.ConnectionString = DriverConnectionString;

        try
        {
            conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = query;
            cmd.ExecuteNonQuery();
            conn.Close();
            Console.WriteLine("Success Occurred ");
        } //end of try
        catch(Exception ex)
        {
            Console.WriteLine("Error Occurred - " + ex.Message);
        }

        return true;
    }
}
于 2009-01-07T03:35:09.367 回答