如何将数据插入数据库?-用户定义的类

Ashane Alvis

我正在尝试使用数据库,正在寻找不同的方法来优化我的代码。在这里,我使用了一个不同的类来停止重新编写相同的代码,例如对于添加,删除和更新,我们使用相同的ExecuteNonQuery()方法。到目前为止,除插入操作外,更新删除方法都运行良好。编译器不会给出任何错误,但是从文本框中获取的值不会进入变量字符串查询。我是C#编码的新手。谁能帮我?或建议?

using DBconnectionExercise.DBConnection_Components;
namespace DBconnectionExercise
{
    public partial class Student_Form : Form
    {
        DBComps dc = new DBComps();

        //public string constring;
        //public SqlConnection con = null;
        //public SqlCommand com = null;
        public String query;

        public Student_Form()
        {
            InitializeComponent();

            //constring = "Data Source=ASHANE-PC\\ASHANESQL;Initial Catalog=SchoolDB;Integrated Security=True";
            //con = new SqlConnection(constring);

            dc.ConnectDB();


        }

        private void Form1_Load(object sender, EventArgs e)
        {

           loadGridData();

        }
        private void dtp_dob_ValueChanged(object sender, EventArgs e)
        {
            DateTime Now = DateTime.Today;
            DateTime Dob = dtp_dob.Value.Date;
            int a = Now.Year - Dob.Year;
            if (Now < Dob.AddYears(a)) a--;
            tb_Age.Text = a.ToString();
        }

        private void loadGridData()
        {
            try
            {
                query = "Select * from tb_Student";
                //dc.OpenCon();
                //SqlDataAdapter da = new SqlDataAdapter(query, con);
                DataTable dt1 = new DataTable();
                dt1 = dc.Data_Table(query);
                //da.Fill(dt);
                Stu_DataGrid.DataSource = dt1;
                //con.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void ClearData()
        {
            tb_Name.Clear();
            tb_Address.Clear();
            tb_Telno.Clear();
            tb_Search.Clear();
            tb_Age.Clear();
            dtp_dob.Value = DateTime.Today;

        }

        private void btn_Add_Click(object sender, EventArgs e)
        {
            try
            {
                String name = tb_Name.Text;
                DateTime dob = dtp_dob.Value.Date;
                int age = Convert.ToInt32(tb_Age.Text);
                String Address = tb_Address.Text;
                int telno = Convert.ToInt32(tb_Telno.Text);
                int line = 0;


                //con.Open();
                query = "Insert into tb_Student values(@Stu_Name, @Stu_DOB, @Age, @Stu_Address, @Stu_Tel_no)";
                //query = "Insert into tb_Student (Stu_Name, Stu_DOB, Age, Stu_Address, Stu_Tel_no) Values('" + name + "','" + dob + "','" + age + "','" + Address + "','" + telno + "')";
                MessageBox.Show(query);
                //com = new SqlCommand(query, con);

               // This is the Insert/save code

                DBComps.com.Parameters.AddWithValue("@Stu_Name", name);
                DBComps.com.Parameters.AddWithValue("@Stu_DOB", dob);
                DBComps.com.Parameters.AddWithValue("@Age", age);
                DBComps.com.Parameters.AddWithValue("@Stu_Address", Address);
                DBComps.com.Parameters.AddWithValue("@Stu_Tel_no", telno);

                //line = com.ExecuteNonQuery();
                line = dc.ExeNonQuery(query);
                //com.Dispose();
                //con.Close();

                if (line > 0)
                {
                    loadGridData();
                    ClearData();
                    MessageBox.Show("Data saved sucessfully!", "Data Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                    MessageBox.Show("Data not Saved", "Error Save", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

这是DBComps我用来编写Sql Function方法的类。

 namespace DBconnectionExercise.DBConnection_Components
    {
        public class DBComps
        {
            public String conSring;
            public SqlConnection con = null;
            public static SqlCommand com = null;

            public void ConnectDB()
            {
                conSring = "Data Source=ASHANE-PC\\ASHANESQL;Initial Catalog=SchoolDB;Integrated Security=True";
                con = new SqlConnection(conSring);
            }

            public void OpenCon()
            {
                con.Open();
            }

            public void CloseCon()
            {
                con.Close();
            }

            public int ExeNonQuery(String query) //the method for Insert, update and delete.
            {

                int line = 0;
                OpenCon();
                com = new SqlCommand(query, con);
                line = com.ExecuteNonQuery();
                com.Dispose();
                CloseCon();

                return line;
            }
    }
} 
Ashane Alvis

好的,最后,我想到了我的问题的答案。在这里如何做到这一点;

private void btn_Add_Click(object sender, EventArgs e)
        {
            try
            {
                String name = tb_Name.Text;
                DateTime dob = dtp_dob.Value.Date;
                int age = Convert.ToInt32(tb_Age.Text);
                String Address = tb_Address.Text;
                int telno = Convert.ToInt32(tb_Telno.Text);
                int line = 0;


                query = "Insert into tb_Student values('"+ name +"','"+ dob +"','"+ age +"','"+ Address +"','"+ telno +"')";

                MessageBox.Show(query); //To see it works!

                line = dc.ExeNonQuery(query);

                if (line > 0)
                {
                    loadGridData();
                    ClearData();
                    MessageBox.Show("Data saved sucessfully!", "Data Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                    MessageBox.Show("Data not Saved", "Error Save", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        } 

始终记住,要写出与表头完全一致的查询语句变量/值。否则会产生错误。感谢大家对这个问题的帮助!:-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将$ _SESSION用户名插入数据库

从前端插入记录时如何将当前用户自动插入到我的数据库中

如何将每个用户的许多自定义表映射到真实的数据库?

如何将数据插入自定义数据库,或者您可以说如何在一个 Wordpress 站点中使用两个数据库

如何将Facebook用户数据转换为数据库中的记录?

如何将数据从用户注册表单发送到Firebase数据库

在用户登录时连接到不同数据库的情况下,如何将数据库凭据存储在 Config 类中

错误:将内容插入MySQL数据库的类

如何将flask_login与多个用户类和不同的数据库条目一起使用?

如何将数据库从单用户模式更改为多用户

如何将经过身份验证的用户名保存到数据库中

如何将表单输入中的用户ID值与数据库中的记录进行匹配?

如何将 SQL 数据库用户链接到不同的基于 Windows 的登录?

如何将phpMyAdmin配置为仅显示root用户的特定数据库

如何将Firebase Realtime数据库项目限制为对象中存在的“用户”

Azure SQL-如何将AD用户添加到SQL Pool数据库

如何将数据库/表中的文件限制为登录 wix 网站的某些用户

如何将JWT链接到我的用户信息数据库

如何将PropertyBag类存储到数据库中

如何将表名称从数据库匹配到Visual Studio中的模型类

如何将数据库表值转换为Java类值?

如何将代码从数据库类切换到口才查询?拉拉韦尔

如何将 css 类添加到 mysql 数据库的最后 10 个条目?

如何将数据库值添加到包含类作为对象的字典中

如何将mysql数据库转换为类图

如何将MVC模型类与现有数据库表和架构匹配

如何为同一用户 ID 中的每个活动将数据插入 Firebase 数据库 - Kotlin

数据库设计:如何将用户的新闻偏好存储在MySQL数据库中?

如何将静态类中的数据存储到ASP中的数据库。网?并修改静态类的值?