开发者

mySQL :syntax using in C#

I am using in C# MYsql .I have query that works if I run on MySql Workbench ,but in C# it does not return any value also does not give ant error too.There is only one different using on Mysql I use before table name databaseName.tableName , but in C# I think it doesn`t necessary. This is part of query which does not return anything.

EDIT :SOLVED

"(select Lesson_Name from schedule  where Group_NO = (select Group_NO from sinif inner join student ON sinif.Group_ID=student.Group_ID where Student_Name=(?Student))"+
           " And Day_Name =(select Day_Name from day inner join date ON day.Day_ID=date.DayName where Date=(?Date))" +
           "And Lesson_Time= (select Lesson_Time from clock where Lesson_Time <= (?Time)order by Lesson_Time DESC limit 0, 1) " +
           " And Week_NO = (select Week_NO from week inner join date ON week.Week_ID=date.Week_ID where Date=(?Date)))

And Here all codes which executes when user click button.

 private void check_B_Click(object sender, EventArgs e)
    {

        connection.Open();

       for (int i = 0; i < existingStudents.Count; i++)
        {
            MySqlCommand cmd1 = new MySqlCommand("select Student_Name,Student_Surname,Student_MacAddress from student  ", connection);
            MySqlCommand cmd2 = new MySqlCommand("insert into check_list (Student,Mac_Address,Date,Time,Lesson_Name)"+
           "values((?Student),(?MacAddress),(?Date),(?Time),"+
           "(select Lesson_Name from schedule  where Group_NO = (select Group_NO from sinif inner join student ON sinif.Group_ID=student.Group_ID where Student_Name=(?Student))"+
           " And Day_Name =(select Day_Name from day inner join date ON day.Day_ID=date.DayName where Date=(?Date))" +
           "And Lesson_Time= (select Lesson_Time from clock where Lesson_Time <= (?Time)order by Lesson_Time DESC limit 0, 1) " +
           " And Week_NO = (select Week_NO from week inner j开发者_开发知识库oin date ON week.Week_ID=date.Week_ID where Date=(?Date))))", connection);

            MySqlParameter param1 = new MySqlParameter();
            param1.ParameterName = "?Student";
            reader = cmd1.ExecuteReader();
            if (reader.HasRows)
                while (reader.Read())
                {
                    if (reader["Student_MacAddress"].ToString() == existingStudentsMac[i].ToString())
                        param1.Value = reader["Student_Name" ]+" "+reader["Student_Surname"];
                }

            reader.Close();

            MySqlParameter param2 = new MySqlParameter();
            param2.ParameterName = "?MacAddress";
            param2.Value = existingStudentsMac[i];

            MySqlParameter param3 = new MySqlParameter();
            param3.ParameterName = "?Date";
            param3.Value = DateTime.Today.Date;

            MySqlParameter param4 = new MySqlParameter();
            param4.ParameterName = "?Time";
            param4.Value = DateTime.Now.ToString("HH:mm");


            cmd2.Parameters.Add(param1);
            cmd2.Parameters.Add(param2);
            cmd2.Parameters.Add(param3); 
            cmd2.Parameters.Add(param4);

           cmd2.ExecuteNonQuery();

        }


        connection.Close();
        MessageBox.Show("Sucsess :)");

    }


With a long experiments )) I found my mistakes.MySqlParameter param1 has value for Student_Name and I also added Student_Surname but in my table there was only Student_Name and because of that they dont match. Also param4.ParameterName = "?Time"; was return system time but with a different time format .I changed it to param4.Value=DateTime.Now.ToString("hh:mm"); Alson I recognized that instead of using Lesson_Time <= (?Time) using Lesson_Time <= ('?Time')solved problem .I think in my table I defined time of lessons as a string and ('?Time') returns string.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜