从新表单将数据保存到数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从新表单将数据保存到数据库相关的知识,希望对你有一定的参考价值。

我有一个程序,它使用Form1上的dataGridView来显示SQL Server数据库中的数据。

用户还可以从Form1 dataGridView编辑数据并将数据保存回DB。

但是,我还有一个搜索功能,它会弹出一个新表格并显示搜索结果。

我希望用户能够直接从新窗口保存,但目前它只是更新Form1 dataGridView中的数据。

这是我用来显示搜索结果的方法。

private void ResultsFunc()
    {
        var ColumnToSearch = comboBox1.Text;

        if (textBox1.Text.Length == 0)
        {
            var toSearchBy = listBox1.SelectedItem.ToString();
            aSH_ORDER_DBDataSet1.ASH_PROD_ORDERS.DefaultView.RowFilter = ColumnToSearch + " = " + "'" + toSearchBy + "'";
        }
        else if (textBox1.Text.Length > 0)
        {
            var toSearchBy = textBox1.Text;
            aSH_ORDER_DBDataSet1.ASH_PROD_ORDERS.DefaultView.RowFilter = ColumnToSearch + " = " + "'" + toSearchBy + "'";
        }

        Form2 resultsForm = new Form2();
        resultsForm.dataGridView2.DataSource = aSH_ORDER_DBDataSet1.ASH_PROD_ORDERS.DefaultView;
        resultsForm.Show();
    }

这是我用来尝试从Form2保存数据:

private void button1_Click(object sender, EventArgs e)
    {
        aSH_PROD_ORDERSTableAdapter.Update(aSH_ORDER_DBDataSet1);
    }

如何获取在Form2中输入的信息直接保存到数据库而不是只更新Form1中的dataGridView?

答案

您是否尝试过SqlBulkCopy,它可以将数据更新到SQLServer,但请确保您在数据表中具有必要的列和架构

protected void Button1_Click(object sender, EventArgs e)  
{  
    try  
    {  
        string cs = ConfigurationManager.ConnectionStrings["SchoolConnectionString"].ConnectionString;  
        using (SqlConnection sqlConn = new SqlConnection(cs))  
        {  
            DataSet ds = aSH_ORDER_DBDataSet1;  
            DataTable dtStudentMaster = ds.Tables["Student"]; 
            //  ds.Tables["Student"], if aSH_ORDER_DBDataSet1 has multiple tables in it specify the table name else ds.Tables[0] is fine
            sqlConn.Open();  
            using (SqlBulkCopy sqlbc = new SqlBulkCopy(sqlConn))  
            {  
                sqlbc.DestinationTableName = "StudentMaster"; 
                // StudentMaster - Table need to be updated in SQLServer
                // Make sure you have the similar column names and datatype in both datatable and sql server table
                sqlbc.ColumnMappings.Add("Name", "Name");  
                sqlbc.ColumnMappings.Add("Phone", "Phone");  
                sqlbc.ColumnMappings.Add("Address", "Address");  
                sqlbc.ColumnMappings.Add("Class", "Class");  
                sqlbc.WriteToServer(dtStudentMaster);  
                Response.Write("Bulk data stored successfully");  
            }  
        }  
    }  
    catch (Exception ex)  
    {  
        throw ex;  
    }  
}  

以上是关于从新表单将数据保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章

将表单保存到数据库(Django Python)

Codeigniter 如何将数据从表单保存到数据库

将表单保存到数据库的 Keyup 功能

从新电子邮件中保存附件

如何将表单数据保存到文本文件?

博客应用程序在提交表单时未将属性保存到数据库