Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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# 在WinC窗体应用程序上显示表中的数据_C#_Sql_Winforms_Datagridview - Fatal编程技术网

C# 在WinC窗体应用程序上显示表中的数据

C# 在WinC窗体应用程序上显示表中的数据,c#,sql,winforms,datagridview,C#,Sql,Winforms,Datagridview,我需要一些在winform上显示表中数据的帮助。通常,这可以使用datagridview完成,但据我所知,datagridvide要么显示表的全部内容,要么我可以使用筛选函数显示与筛选匹配的数据 我目前面临的问题是,我有一个名为book_issued的表格,其中包含了发给学生的所有书籍的详细信息,每个学生都有一个独特的注册表 我有一个登录表单,当一个学生登录时,它会获取他的regid值,然后将他们引导到另一个表单,该表单应该显示该学生已发行的所有书籍的列表 为了实现这一点,我正在运行sql查询

我需要一些在winform上显示表中数据的帮助。通常,这可以使用datagridview完成,但据我所知,datagridvide要么显示表的全部内容,要么我可以使用筛选函数显示与筛选匹配的数据

我目前面临的问题是,我有一个名为book_issued的表格,其中包含了发给学生的所有书籍的详细信息,每个学生都有一个独特的注册表

我有一个登录表单,当一个学生登录时,它会获取他的regid值,然后将他们引导到另一个表单,该表单应该显示该学生已发行的所有书籍的列表

为了实现这一点,我正在运行sql查询

"SELECT * FROM book_issued WHERE regid = @regid"
我跳过了传递参数化值和从datareader读取数据的过程

我的问题是在表单上显示这些数据,如果您能提供一些帮助,我们将不胜感激

愚蠢的代码与问题无关,但ppl会在没有它的情况下投票否决问题

 private void student_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'libDataSet8.issue' table. You can move, or remove it, as needed.
            this.issueTableAdapter1.Fill(this.libDataSet8.issue);
            // TODO: This line of code loads data into the 'libDataSet7.issue' table. You can move, or remove it, as needed.
            //this.issueTableAdapter.Fill(this.libDataSet7.issue);
            //// TODO: This line of code loads data into the 'libDataSet6.books' table. You can move, or remove it, as needed.
            //this.booksTableAdapter.Fill(this.libDataSet6.books);

        }

        private void nameToolStripButton_Click(object sender, EventArgs e)
        {
            try
            {
                this.booksTableAdapter.name(this.libDataSet6.books, nameToolStripTextBox.Text);
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }

        }

        //Get Student Details
        private void student_details(string input)
        {
            query = "SELECT * FROM student WHERE regid = @regid";
            string conString = Properties.Settings.Default.libConnectionString;
            using (SqlCeConnection conn = new SqlCeConnection(conString))
            {
                conn.Open();
                using (SqlCeCommand cmd = new SqlCeCommand(query, conn))
                {
                    cmd.Parameters.AddWithValue("@regid", input);
                    cmd.ExecuteNonQuery();

                    SqlCeDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        dob = reader["dob"].ToString();
                        sbook = Convert.ToInt32(reader["book"].ToString());
                        fine = Convert.ToDouble(reader["fine"].ToString());
                    }
                    string temp = dob.Substring(5, 4);
                    int years = DateTime.Now.Year - Convert.ToInt32(temp);

                    sage = years;

                }
            }

        }
        //Method to validate user inputs
        private bool ValidateISBNi()
        {
            bool bStatus = true;
            if (isbni.Text == string.Empty)
            {
                errorProvider2.SetError(isbni, "");
                errorProvider1.SetError(isbni, "Please Enter ISBN code");
                bStatus = false;
            }
            else
            {
                 query = "SELECT * FROM books WHERE isbn = @isbn";
                 string conString = Properties.Settings.Default.libConnectionString;
                 using (SqlCeConnection conn = new SqlCeConnection(conString))
                 {
                     conn.Open();
                     using (SqlCeCommand cmd = new SqlCeCommand(query, conn))
                     {
                         cmd.Parameters.AddWithValue("@isbn", isbni.Text);
                         cmd.ExecuteNonQuery();

                         SqlCeDataReader reader = cmd.ExecuteReader();

                         while (reader.Read())
                         {
                             counter = 1;
                         }

                     }
                 }
                 if (counter == 1)
                 {
                     errorProvider1.SetError(isbni, "");
                     errorProvider2.SetError(isbni, "Good");
                     counter = 0;
                 }
                 else
                 {
                     errorProvider2.SetError(isbni, "");
                     errorProvider1.SetError(isbni, "Invalid ISBN code");
                     bStatus = false;
                 }
            }
            return bStatus;            
        }

        private bool ValidateISBNr()
        {
            bool bStatus = true;
            if (isbni.Text == string.Empty)
            {
                errorProvider2.SetError(isbnr, "");
                errorProvider1.SetError(isbnr, "Please Enter ISBN code");
                bStatus = false;
            }
            else
            {
                query = "SELECT * FROM issue WHERE isbn = @isbn AND rgid = @rgid";
                string conString = Properties.Settings.Default.libConnectionString;
                using (SqlCeConnection conn = new SqlCeConnection(conString))
                {
                    conn.Open();
                    using (SqlCeCommand cmd = new SqlCeCommand(query, conn))
                    {
                        cmd.Parameters.AddWithValue("@isbn", isbnr.Text);
                        cmd.Parameters.AddWithValue("@rgid", Variables.regid);
                        cmd.ExecuteNonQuery();

                        SqlCeDataReader reader = cmd.ExecuteReader();

                        while (reader.Read())
                        {
                            counter = 1;
                        }

                    }
                }
                if (counter == 1)
                {
                    errorProvider1.SetError(isbnr, "");
                    errorProvider2.SetError(isbnr, "Good");
                    counter = 0;
                }
                else
                {
                    errorProvider2.SetError(isbni, "");
                    errorProvider1.SetError(isbni, "Invalid ISBN code");
                    bStatus = false;
                }
            }
            return bStatus;            
        }


        private void isbni_Validating(object sender, CancelEventArgs e)
        {
            ValidateISBNi();
        }

        private void isbnr_Validating(object sender, CancelEventArgs e)
        {
            ValidateISBNr();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            bool vissue;
            vissue = ValidateISBNi();
            if (vissue)
            {

            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void groupBox3_Enter(object sender, EventArgs e)
        {

        }


    }
}
添加了一堆随机代码,这对ne1有帮助吗?我不认为会这样,这就是为什么我一开始没有发布它的原因。这就是你的意思吗

在您的表单1中,假设您有一个文本框名称txtregstrud,那么表单1中的值将传递给表单2?你属于继承

在表格1中,这可能是代码:

form2 f = new frm2();
f.strRegStud = txtRegStud.Text;
f.Show();
this.Dispose();
然后,在form2中,您需要声明公共字符串,以便从任何其他表单中携带值:

public string strRegStud;
private void frm2_Load(object sender, EventArgs e)
    {
        try
        {
            OleDbConnection Con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\dbname.mdb;");
            OleDbCommand command = new OleDbCommand();
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            DataTable dt = new DataTable();
            Con.Open();
            command.CommandText = String.Format("SELECT * FROM book_issued WHERE regid ='{0}'", strRegStud);;
            command.Connection = Con;
            adapter.SelectCommand = command;
            adapter.Fill(dt);
            Con.Close();
            Con.Dispose();
            datagridview1.DataSource = dt;

        }
        catch (Exception ex)
        {
            XtraMessageBox.Show(ex.Message);
        }
    }

这就是您要查看的吗?

如果您使用数据绑定DGV,则由您的选择决定a向数据集中传输多少行,b在DGV中发送和创建哪些列。但您也可以创建一个导航控件,并将一些绑定数据复制到各种控件,如标签、复选框、文本框等。有时会发生这种情况。这通常意味着他们相信这个问题对未来的其他人没有什么用处。不要去想它——或者不要想太多!这样就可以了,我可以把注册表从表格1传递到表格2,但是我不知道如何显示数据