iT邦幫忙

0

C# Update Insert 應用 題目 對應其空格

求解以下題目
https://ithelp.ithome.com.tw/upload/images/20180420/20109425BVzDGb6efa.jpg
https://ithelp.ithome.com.tw/upload/images/20180420/20109425EWzkZUkaFW.png
在空格內輸入資料(例如)
按下新增及修改按鈕可以跑出對應的數值出來

以下我的 update,insert C#語法程式碼

String insert = string.Format("INSERT INTO sales (Item,Price,Date) VALUES('{0}')", TextBox3.Text + TextBox4.Text + TextBox5.Text);

String Update = string.Format(" UPDATE sales SET Item = '{0}' WHERE Item = '電腦' ", TextBox2.Text);

請問 我還要需要修改什麼呢?或是後端再多寫一點程式 去連接
Textbox的值

因為我有好幾個都是寫這樣
TextBox1.Text="";
TextBox2.Text="";
TextBox3.Text="";
TextBox4.Text="";
TextBox5.Text="";

看更多先前的討論...收起先前的討論...
資料庫基本還是要花一兩個小時了解一下不要瞎寫,
發現一堆連基本語句意思都沒搞懂,就想寫程式,也不知道自己在幹嘛,
連一兩小時能k完的基本都搞不清楚,還寫什麼程式~
ted8224 iT邦新手 5 級 ‧ 2018-04-23 09:49:36 檢舉
我有買書看.........可是..... 書裡的東西,對我現在的...實戰應用我覺得沒什麼幫助
裡面的範例都是一些簡單的,有問一些前輩說你拿現成範例去改去學會比較快
謝謝大大回復
這種東西不用買書,網路上資料也一堆,
是說基本觀念與語法要了解,即使拿範例也要知道每一行的意思,
以及為何要這樣寫,每個設計都有它的意涵,不理解的話,
累積越長的程式,只會讓你更不懂而已,從頭開始吧~
coreychen iT邦新手 5 級 ‧ 2018-04-23 17:18:27 檢舉
不要覺得書裡講的和你現的實戰應用沒幫助!基礎先打好來.....
拿範例去改雖然會學比較快,但若是你沒去了解每一行的用途.....
那天要你從無到有時,你要怎麼寫??
ted8224 iT邦新手 5 級 ‧ 2018-04-24 08:07:56 檢舉
還是有在看啦,書裡的東西
0
暐翰
iT邦大師 9 級 ‧ 2018-04-23 17:46:17
最佳解答

Yes

你想要的新增、修改都可以在這篇影片中學到

有問題的地方再跟我說 :)

ted8224 iT邦新手 5 級 ‧ 2018-04-24 08:32:04 檢舉

感謝大大.... 對
上面影片
所Run出來,就是我需要的功能....
感謝大大,讚嘆大大!!!!

0
優悠
iT邦新手 5 級 ‧ 2018-04-20 16:27:34
//新增-範例
INSERT INTO "表格名" ("欄位1", "欄位2", ...)
VALUES ("值1", "值2", ...);

//你的
"INSERT INTO sales (Item,Price,Date) VALUES(''+TextBox3.Text + TextBox4.Text + TextBox5.Text)"
//你只有新增到第一筆

//你的
String Update = string.Format(" UPDATE sales SET Item = '{0}' WHERE Item = '電腦' ", TextBox2.Text);
//你要隨身碟改建盤,是只有這一筆要改還是所有的隨身碟改建盤?

//1.只改這一筆,之前說了,找PK
//例如:多的欄位較PK,照你目前資料順序,1,2,3,4,5,
String Update = string.Format(" UPDATE sales SET Item = '{0}' WHERE PK = '2' ", TextBox2.Text);
//2.改全部
//你的電腦改隨身碟就好

先想想,盡量不要伸手黨

看更多先前的回應...收起先前的回應...
優悠 iT邦新手 5 級 ‧ 2018-04-20 16:30:07 檢舉

GridView.SelectedDataKey
請GOOGLE
請GOOGLE
請GOOGLE

這很重要,所以說三次,你會了這個就更進步了

ted8224 iT邦新手 5 級 ‧ 2018-04-20 16:31:10 檢舉

是阿.... 我也想自己想 但我想的 寫出來一堆錯誤...
亂goole 也找不太到範例
辦法就是拿一些範例去改
但... 這些東西,雖然小東西,去結合,去應用很多技巧下去
對新手其實滿不容易
書上..範例也沒寫那麼清楚...
還是 謝謝大大您的回覆....

優悠 iT邦新手 5 級 ‧ 2018-04-20 16:44:41 檢舉

GridView.SelectedDataKey
介紹

你現在有個GridView,先設定DataKeyNames=PK(你的不重複、唯一值欄位),你點它的資料任何一列,它被選擇(SelectedDataKey才有數值),你輸入修改直,按下按鈕,利用這個SelectedDataKey,去只修改你選的這列資料的某欄位值(換成你輸入的值)

看得懂嗎?

優悠 iT邦新手 5 級 ‧ 2018-04-20 17:04:49 檢舉

我可以GOOGLE遠端教你
當然,最好是你自己的電腦,如果用公司的,如有任何中毒或是損壞您公司之權利,我不負任何責任,我事先說明
ted8224

ted8224 iT邦新手 5 級 ‧ 2018-04-21 11:59:35 檢舉

我有回訊息 給您囉
....謝謝大大

0
coreychen
iT邦新手 5 級 ‧ 2018-04-21 09:27:20

你在做之前,有先試過你的T-SQL語法是正確的嗎?
以Insert的例子來說,應該要這樣下才對

string.Format("INSERT INTO sales (Item,Price,Date) VALUES('{0}','{1}','{2}')",
               TextBox3.Text, TextBox4.Text, TextBox5.Text);

另外新增時,新增的日期不應該是自行輸入吧,實例上不會有人這樣做!
正常應該要這樣做

string.Format("INSERT INTO sales (Item,Price,Date) VALUES('{0}','{1}','{2}')",
               TextBox3.Text, TextBox4.Text, DateTime.Now.ToString("yyyyMMdd"));
看更多先前的回應...收起先前的回應...
ted8224 iT邦新手 5 級 ‧ 2018-04-21 12:40:17 檢舉

恩...我是 MySQL的....
好... 謝謝大大回復... 我再試試看
其實只是 不直到 TextBox 用法 去連結
我想讓它當 input這樣
感謝您回復

ted8224 iT邦新手 5 級 ‧ 2018-04-23 09:10:07 檢舉

String insert = string.Format("INSERT INTO sales (Item,Price,Date) VALUES('{0}','{1}','{2}'})", TextBox3.Text + TextBox4.Text + TextBox5.Text,DateTime.Now.ToString("yyyyMMdd"));
我新增改這樣
這一行 會跳錯誤

ted8224 iT邦新手 5 級 ‧ 2018-04-23 09:10:12 檢舉

String insert = string.Format("INSERT INTO sales (Item,Price,Date) VALUES('{0}','{1}','{2}'})", TextBox3.Text + TextBox4.Text + TextBox5.Text,DateTime.Now.ToString("yyyyMMdd"));
我新增改這樣
這一行 會跳錯誤

優悠 iT邦新手 5 級 ‧ 2018-04-23 09:21:11 檢舉

FORMAT的觀念要去看一下
你寫的insert 跟coreychen的不一樣

ted8224

ted8224 iT邦新手 5 級 ‧ 2018-04-23 09:50:28 檢舉

好 我去google看看...謝謝

coreychen iT邦新手 5 級 ‧ 2018-04-23 13:35:13 檢舉

https://ithelp.ithome.com.tw/upload/images/20180423/20069786BOnwGzsE6D.jpg

ted8224 iT邦新手 5 級 ‧ 2018-04-23 13:58:24 檢舉

String Item = TextBox3.Text;
String Price = TextBox4.Text;
String Date = TextBox5.Text;

String insert = string.Format("INSERT INTO [sales] (Item,Price,Date) VALUES('{0}','{1}','{2}')",Item,Price,Date, TextBox3.Text , TextBox4.Text ,TextBox5.Text);

MySqlCommand cmd = new MySqlCommand(insert, conn);
DataTable dt = new DataTable();
GridView2.DataSource = dt;

        GridView2.DataBind();

        dt.Dispose();
         conn.Close();

我爬文後改這樣,理論上沒寫錯.....
在TextBox3,TextBox4,TextBox5打上中文或數字
就能Insert到指定資料庫
我這樣寫沒錯誤也能Run
只是沒反應....
前端我都直接拉GrideView....

優悠 iT邦新手 5 級 ‧ 2018-04-23 15:22:26 檢舉
string.Format("{0},{1},{2}",Item,Price,Date);

FORMAT 你前面有幾個{} 後面就放幾個對應數值

還有你沒有執行語法
例如:

conn.Open();
MySqlCommand cmd = new MySqlCommand(insert, conn);
cmd.ExecuteNonQuery();
conn.Close();

你下面這段給他一個空的DATATABLE
沒意義

DataTable dt = new DataTable();
GridView2.DataSource = dt;
ted8224 iT邦新手 5 級 ‧ 2018-04-23 15:46:33 檢舉

直接寫insert我會,只是我跑會變成後端寫好按下去跑結果
可是使用者不可能會跑去後端看你程式碼去自己改,所以新增TextBox去應用,然後使用者在TextBox其空格內輸入他要的去新增可以Run解果

不好意思 放對應數值?

coreychen iT邦新手 5 級 ‧ 2018-04-23 17:09:25 檢舉

你有去看過string.Format了嗎= =?
https://msdn.microsoft.com/zh-tw/library/system.string.format(v=vs.110).aspx

你的這段就不對啦!
https://ithelp.ithome.com.tw/upload/images/20180423/20069786ihNIOuA2B6.jpg

另外,你說你的GridView沒反應,你有繫結對應的資料表嗎?
若沒繫結,就要在寫完後,重取一次資料再丟給GridView。

ted8224 iT邦新手 5 級 ‧ 2018-04-24 08:07:26 檢舉

謝謝大大回復... 我用出來了...

ted8224 iT邦新手 5 級 ‧ 2018-04-24 08:07:26 檢舉

謝謝大大回復... 我用出來了...

0
小魚
iT邦好手 1 級 ‧ 2018-04-21 14:54:37

你寫了你的做法,
但是我不知道你的問題是什麼?
你有執行過嗎?
執行有遇到困難嗎?
這我都沒有看到。

ted8224 iT邦新手 5 級 ‧ 2018-04-23 08:18:59 檢舉

不是作法...還沒寫出來,只是概念是這樣想
還不知道怎麼把它寫出來
謝謝大大回復
所以也還沒Run

我要發表回答

立即登入回答