【问题标题】:How to make add button adds data to datagridview using Stored Procedure C#如何使用存储过程 C# 使添加按钮将数据添加到 datagridview
【发布时间】:2015-10-12 04:17:27
【问题描述】:

This is my PhonebookSystem UI.

这些是我的电话簿系统代码。

private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            txtLastName.Text = DGPhonebook.CurrentRow.Cells["LastName"].Value.ToString();
            txtFirstName.Text = DGPhonebook.CurrentRow.Cells["FirstName"].Value.ToString();
            txtMiddleName.Text = DGPhonebook.CurrentRow.Cells["MiddleName"].Value.ToString();
            txtAge.Text = DGPhonebook.CurrentRow.Cells["Age"].Value.ToString();
            txtEmailAddress.Text = DGPhonebook.CurrentRow.Cells["EmailAddress"].Value.ToString();
            txtContactNo.Text = DGPhonebook.CurrentRow.Cells["ContactNo"].Value.ToString();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            Person p = new Person
            {
                LastName = txtLastName.Text,
                FirstName = txtFirstName.Text,
                Middlename = txtMiddleName.Text,
                Age = Convert.ToInt32(txtAge.Text),
                EmailAddress = txtEmailAddress.Text,
                ContactNo = txtContactNo.Text
            };

            clsPerson.InsertPerson(p);
        }

        private void DGPhonebook_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            this.DGPhonebook.Rows.Add("1", "XX");
        }

这些是我的 clsPerson 代码。

public static void InsertPerson(Person p)
        {
            PhonebookSQLDataContext db = new PhonebookSQLDataContext();
            db.usp_InsertPerson(p.LastName, p.FirstName, p.Middlename, p.Age, p.EmailAddress, p.ContactNo);
        }
        public static void UpdatePerson(Person p)
        {
            PhonebookSQLDataContext db = new PhonebookSQLDataContext();
            db.usp_UpdatePerson(p.Numbering, p.LastName, p.FirstName, p.Middlename, p.Age, p.EmailAddress, p.ContactNo);
        }
        public static void DeletePerson(Person p)
        {
            PhonebookSQLDataContext db = new PhonebookSQLDataContext();
            db.usp_DeletePerson(p.Numbering);
        }

        public static List<usp_RetrievePersonResult> RetrievePerson = new List<usp_RetrievePersonResult>();

            PhonebookSQLDataContext db = new PhonebookSQLDataContext();
        }

我在使用存储过程通过单击添加按钮将数据添加到 datagridview 时遇到问题。请帮忙..Thanksss ;)

【问题讨论】:

  • 你有什么错误吗?
  • System.Data.dll 中发生“System.Data.SqlClient.SqlException”类型的未处理异常附加信息:字符串或二进制数据将被截断。该语句已终止。
  • 您不应该关注 MVP 而不是 MVC,因为这是 Win Forms 应用程序。回到您的错误,此错误表明您正在尝试存储比数据库列可以接受的更长的数据。
  • IExecuteResult 结果 = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), lastName, firstName, middlename, age, emailAddress, contactNo);这是代码错误。
  • MVC 工作。我的同事和教授做 MVC

标签: c# winforms stored-procedures datagridview


【解决方案1】:

它可能对你有用。我只以名字为例。

public void btn_1_Click(object sender, EventArgs e)
{
    Person p = new Person
    {
        nbame = txt1.Text.ToString()
    };
    InsertPerson(p);
    Loadgrid();
}
public void InsertPerson(Person p)
{
    DataClassesDataContext db = new DataClassesDataContext();
    Persontbl per = new Persontbl();
    per.name = p.nbame;
    db.Persontbls.InsertOnSubmit(per);
    db.SubmitChanges();
}
public void Loadgrid()
{
    DataClassesDataContext db = new DataClassesDataContext();
    var result = from res in db.Persontbls select name;
    GRD1.DataSource = result;
    GRD1.DataBind();
}

表:

 create table Persontbl(name varchar(20 )  primary key)

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 2017-08-15
    • 2019-07-02
    • 2022-12-28
    • 2013-03-30
    • 2014-02-07
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    相关资源
    最近更新 更多