簡體   English   中英

我想使用C#將數據插入SQL Server數據庫

[英]I want to insert data into a SQL Server databse using C#

我想使用C#將數據插入SQL Server數據庫中。

我的代碼沒有錯誤。 但是輸入數據后,我會遍歷。 它向我顯示了數據。 但是當我打開數據庫表時。 我看不到插入的數據。 我在創建時用2行初始化了表。 但是,當我遍歷表單時,看不到那些行。

經過如此多的嘗試后出現錯誤。 我看到每次運行數據庫連接時都會斷開。 我看到單擊F5后,數據庫圖標上的“綠色插頭”變成了“紅色十字”。 那是原因嗎? 如果是,那應該怎么解決?

伙計們請幫幫我。 我是C#的新手。

這是insert.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace employeDB1
{
public partial class Insert : Form
{
    public Insert()
    {
        InitializeComponent();
    }

    DatabaseConnection objConnect;
    string conString;
    int inc ;
    int MaxRows;
    DataSet ds = new DataSet();
    DataRow dRow;

    public void Insert_Load(object sender, EventArgs e)
    {
        try
        {
            objConnect = new DatabaseConnection();
            conString = Properties.Settings.Default.EmployeeConnectionString;
            objConnect.connection_string = conString;
            objConnect.Sql = Properties.Settings.Default.SQL;
            ds = objConnect.GetConnection;
            MaxRows = ds.Tables[0].Rows.Count;
            inc = MaxRows - 1;
            //NavigateRecords();
        }
        catch (Exception err)
        {
            MessageBox.Show(err.Message);
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
            DataRow row = ds.Tables[0].NewRow();
            row[0] = int.Parse(textBox1.Text);
            row[1] = textBox2.Text;
            row[2] = textBox3.Text;
            row[3] = int.Parse(textBox4.Text);
            ds.Tables[0].Rows.Add(row);
        try
        {

            objConnect.UpdateDatabase(ds);
            MaxRows = MaxRows + 1;
            inc = MaxRows - 1;
            MessageBox.Show("RECORD INSERTED");

        }
        catch(Exception err)
        {
            MessageBox.Show(err.Message);
        }
    }

    private void NavigateRecords()
    {
        dRow = ds.Tables[0].Rows[inc];
        textBox1.Text = dRow.ItemArray.GetValue(0).ToString();
        textBox2.Text = dRow.ItemArray.GetValue(1).ToString();
        textBox3.Text = dRow.ItemArray.GetValue(2).ToString();
        textBox4.Text = dRow.ItemArray.GetValue(3).ToString();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        if (inc>0)
        {
            inc--;
            NavigateRecords();

        }
        else
        {
            MessageBox.Show("First Record");
        }
    }
 }
}

這是數據庫連接類:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace employeDB1
{
class DatabaseConnection
{
    private string sql_string;
    private string strCon;
    System.Data.SqlClient.SqlDataAdapter da_1;

    public string Sql
    {
        set { sql_string = value; }
    }

    public string connection_string
    {
        set { strCon = value; }
    }

    public System.Data.DataSet GetConnection
    {
        get { return MyDataSet(); }
    }

    private System.Data.DataSet MyDataSet()
    {
        System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(strCon);
        con.Open();
        da_1 = new System.Data.SqlClient.SqlDataAdapter(sql_string, con);
        System.Data.DataSet dat_set = new System.Data.DataSet();
        da_1.Fill(dat_set, "Table_Data_1");
        con.Close();
        return dat_set;
    }

    public void UpdateDatabase(System.Data.DataSet ds)
    {
        System.Data.SqlClient.SqlCommandBuilder cb = new System.Data.SqlClient.SqlCommandBuilder(da_1);
        cb.DataAdapter.Update(ds.Tables[0]);
    }
}

嘗試將您的連接字符串放在app.config文件中,然后將其檢索,也可以將其硬編碼在insert.cs文件中。 我已經使用app.config文件檢查了它,它正在工作。 這是我做的。

app.config文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="connectionString" connectionString="Server=192.168.8.295;Database=TestDB;
           uid=Tapan;pwd=kumar;"/>
  </connectionStrings>
</configuration>

然后,只需替換您要從insert.cs頁面中的設置中檢索的內容即可

 conString = ConfigurationManager.ConnectionStrings["connectionString"].ToString();

並刪除這個東西

 objConnect.Sql = Properties.Settings.Default.SQL;

並檢查一次是否正常。 對我來說,它正在工作。

如果仍然有問題,請先嘗試捕獲代碼,然后先進行徹底調試,然后查看代碼快死了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM