第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法讓此代碼插入數(shù)據(jù)庫中的所有當前數(shù)據(jù)?

有沒有辦法讓此代碼插入數(shù)據(jù)庫中的所有當前數(shù)據(jù)?

C#
慕妹3146593 2022-08-20 17:44:29
我想要的是將數(shù)據(jù)網(wǎng)格視圖中所有行和列中的所有數(shù)據(jù)插入到我的數(shù)據(jù)庫中。我沒有收到任何錯誤,但這不起作用,沒有在我的數(shù)據(jù)庫中插入任何值。    con.Open();    SqlCommand cmd = new SqlCommand();    cmd = con.CreateCommand();    for (int i = 0; i < dgEdit.Rows.Count; i++)    {       DateTime ds = DateTime.Now;       cmd.CommandType = CommandType.Text;       cmd.CommandText = "INSERT INTO Tb BL_Attendance(Course, Subject,        Year, Section, Name, Room, SeatNo, Status, Date) VALUES('" +        dgvAtt.Rows[i].Cells[0].Value + "', '" +        dgvAtt.Rows[i].Cells[1].Value + "', '" +        dgvAtt.Rows[i].Cells[2].Value + "', '" +        dgvAtt.Rows[i].Cells[3].Value + "', '" +        dgvAtt.Rows[i].Cells[4].Value + "', '" +        dgvAtt.Rows[i].Cells[5].Value + "', '" +        dgvAtt.Rows[i].Cells[6].Value + "', '" +        dgvAtt.Rows[i].Cells[7].Value + "', @Date) ";       cmd.Parameters.AddWithValue("@Date", ds);       cmd.ExecuteNonQuery();    }     MessageBox.Show("Updated! please check the report", "Save",      MessageBoxButtons.OK, MessageBoxIcon.Information);     con.Close();我期望這將我的所有數(shù)據(jù)網(wǎng)格值插入到表中
查看完整描述

2 回答

?
忽然笑

TA貢獻1806條經(jīng)驗 獲得超5個贊

下面的邏輯嘗試盡可能接近您的實現(xiàn),但在處理數(shù)據(jù)庫連接時要考慮最佳實踐:


// You will need the following namespaces:

// using System;

// using System.Data;

// using System.Data.SqlClient;

// using System.Windows.Forms;


var connectionString = "Your SQL Server connection string";


using (var con = new SqlConnection(connectionString))

{

    con.Open();


    var cmd = con.CreateCommand();

    cmd.CommandType = CommandType.Text;

    cmd.CommandText =

        "INSERT INTO Tbl_Attendance (Course, Subject, Year, Section, Name, Room, SeatNo, Status, Date) " +

        "VALUES (@Course, @Subject, @Year, @Section, @Name, @Room, @SeatNo, @Status, @Date)";


    var courseParam = cmd.Parameters.Add("@Course", SqlDbType.VarChar, 50);

    var subjectParam = cmd.Parameters.Add("@Subject", SqlDbType.VarChar, 50);

    var yearParam = cmd.Parameters.Add("@Year", SqlDbType.VarChar, 50);

    var sectionParam = cmd.Parameters.Add("@Section", SqlDbType.VarChar, 50);

    var nameParam = cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50);

    var roomParam = cmd.Parameters.Add("@Room", SqlDbType.VarChar, 50);

    var seatNoParam = cmd.Parameters.Add("@SeatNo", SqlDbType.VarChar, 50);

    var statusParam = cmd.Parameters.Add("@Status", SqlDbType.VarChar, 50);


    var dateParam = cmd.Parameters.Add("@Date", SqlDbType.DateTime);

    dateParam.Value = DateTime.Now;


    // If you are going to insert a lot of records, it's advised to call the Prepare method on your SqlCommand.

    // Un-comment the line below if you want to see how this behaves.

    // cmd.Prepare();


    foreach (DataGridViewRow row in dgEdit.Rows)

    {

        courseParam.Value = row.Cells[0].Value;

        subjectParam.Value = row.Cells[1].Value;

        yearParam.Value = row.Cells[2].Value;

        sectionParam.Value = row.Cells[3].Value;

        nameParam.Value = row.Cells[4].Value;

        roomParam.Value = row.Cells[5].Value;

        seatNoParam.Value = row.Cells[6].Value;

        statusParam.Value = row.Cells[7].Value;


        cmd.ExecuteNonQuery();

    }

}


MessageBox.Show("Updated! please check the report", "Save", MessageBoxButtons.OK, MessageBoxIcon.Information);

更改背后的原因:

  • 如果可能,請在語句中實例化并打開 SqlConnection 連接。這將確保在作用域中完成連接時,始終關(guān)閉(釋放)連接。using

  • 在與任何外部輸入交互時,始終在查詢中使用參數(shù),以避免Bobby的媽媽被利用!(https://xkcd.com/327/)。這將確保您的代碼不容易受到 SQL 注入的影響。如您所見,我添加了一些參數(shù),但是由于您沒有提供我當時創(chuàng)建的表架構(gòu),因此除了很明顯您正在保存.請根據(jù)需要隨意將 更改為正確的類型。VARCHAR(50)@DateSystem.DateTimeSqlDbType.VarChar

  • 我將呼叫移到了范圍之外,因此它不會干擾連接處理。MessageBox.Showusing

可以對此邏輯執(zhí)行的另一項增強功能是實現(xiàn)類的使用(必須添加對 System.Transactions 的引用.dll),以確保如果在任何插入過程中出現(xiàn)錯誤,則沒有任何內(nèi)容進入數(shù)據(jù)庫。System.Transactions.TransactionScopecommitted


查看完整回答
反對 回復(fù) 2022-08-20
?
至尊寶的傳說

TA貢獻1789條經(jīng)驗 獲得超10個贊

您的原型是正確的,但您犯了一個錯誤,返回一個 Object,必須將其轉(zhuǎn)換為或表中可能匹配的列數(shù)據(jù)。dgvAtt.Rows[i].Cells[0].ValueToString()

假設(shè)這是我的形式

http://img1.sycdn.imooc.com//6300ad24000197c606790461.jpg

我創(chuàng)建了一個表“人員”

http://img1.sycdn.imooc.com//6300ad3300013c9506430116.jpg

代碼源碼


private void button1_Click(object sender, EventArgs e)

    {

        try

        {

            SqlCommand cmd = new SqlCommand();

            cmd = con.CreateCommand();

            for (int i = 0; i < dgvAtt.Rows.Count - 1; i++)

            {

                con.Open();

                cmd.CommandType = CommandType.Text;

                string Query = "INSERT INTO Person (idPerson, fullnamePerson) VALUES (" + dgvAtt.Rows[i].Cells[0].Value.ToString() + ",'" + dgvAtt.Rows[i].Cells[1].Value.ToString() + "')";

                cmd.CommandText = Query;

                cmd.ExecuteNonQuery();

                con.Close();

            }

            MessageBox.Show("Updated! please check the report", "Save", MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

        catch (Exception ex)

        {

            MessageBox.Show(ex.Message);

        }

    }

不要編寫任何參數(shù),因為這會給你一個例外。


查看完整回答
反對 回復(fù) 2022-08-20
  • 2 回答
  • 0 關(guān)注
  • 149 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號