Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我如何做到只有登录的学生才能查看自己的成绩,而不是查看所有人_C#_Mysql_Forms - Fatal编程技术网

C# 我如何做到只有登录的学生才能查看自己的成绩,而不是查看所有人

C# 我如何做到只有登录的学生才能查看自己的成绩,而不是查看所有人,c#,mysql,forms,C#,Mysql,Forms,我正在尝试这样做,只有登录的学生才能查看自己的成绩,而不是查看每个人的成绩 我正在创建一个画布应用程序,使登录的学生能够查看他们的作业和成绩。我只需要datagridview来显示记录的学生作业名称和成绩 void GridFillGrade() { using (MySqlConnection con = new MySqlConnection(connectionString)) { con.Open();

我正在尝试这样做,只有登录的学生才能查看自己的成绩,而不是查看每个人的成绩

我正在创建一个画布应用程序,使登录的学生能够查看他们的作业和成绩。我只需要datagridview来显示记录的学生作业名称和成绩

 void GridFillGrade()
    {
        using (MySqlConnection con = new MySqlConnection(connectionString))
        {
            con.Open();
            MySqlDataAdapter sda = new MySqlDataAdapter("ViewAllGrades", con);
            sda.SelectCommand.CommandType = CommandType.StoredProcedure;
            DataTable dta = new DataTable();
            sda.Fill(dta);
            stdGrade.DataSource = dta;
           con.Close();
        }
    } 

    private void StudentPage_Load(object sender, EventArgs e)
    {
        GridFillASs();
        GridFillGrade();
    }
“viewAllGrades”来自mysql查询

CREATE DEFINER=`root`@`localhost` PROCEDURE `ViewAllGrades`()
BEGIN
    SELECT * 
FROM  Grades;

END
这是登录代码

 private void btnlogin_Click(object sender, EventArgs e)
    {
        i = 0;
        con.Open();
        MySqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select * from stdinfotable where Username='" + textuser.Text + "' and Password= '" + textpass.Text + "'";
        cmd.ExecuteNonQuery();
        DataTable dt = new DataTable();
        MySqlDataAdapter dta = new MySqlDataAdapter(cmd);
        dta.Fill(dt);
        i = Convert.ToInt32(dt.Rows.Count.ToString());

        if(i==0)
        {
            MessageBox.Show("Error");
        }
        else
        {
            this.Hide();
            StudentPage f = new StudentPage();
            f.Show();

        }
        con.Close();

    }

所以我想知道我是否应该对登录代码做些什么,以便归档我想要的东西,但我不知道会是什么。很抱歉,我对数据库还是新手,我使用MySql才4个月。

我假设您的成绩表有一个键将其与stdinfotable绑定

如果是这样,那么您的sql查询将是

SELECT * FROM Grades WHERE Grades.StudentID = 12

其中登录的学生ID为12

我认为您需要研究sql SELECT语句中的WHERE子句如何工作第一步是避免sql注入(通过参数化查询)。第二步是在成绩查询中使用WHERE子句,允许您根据当前登录的用户筛选成绩。使用WHERE子句是什么意思?我该怎么实现呢?@bradbury9…和你在第二段中使用的WHERE子句没什么不同,谢谢!我现在更明白了,但这对我正在努力实现的目标有什么帮助呢@非同寻常