台灣最大程式設計社群網站
線上人數
801
 
會員總數:242627
討論主題:187610
歡迎您免費加入會員
討論區列表 >> C# >> 無法將資料增加到Local 資料庫
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
無法將資料增加到Local 資料庫
價值 : 5 QP  點閱數:142 回應數:8

樓主

Mike
門外漢
0 2
32 5
發送站內信

各位前輩,
正在開始學習C#,依書上範例作了一個新增資料到Local 資料庫的動作,但一直會出現錯誤,
也無法新增資料。

在Form 的Load 事件我作了這設定

private void fmProduct_Load(object sender, EventArgs e)
{
// TODO: 這行程式碼會將資料載入 'yCCDBDataSet.Product' 資料表。您可以視需要進行移動或移除。
this.productTableAdapter.Fill(this.yCCDBDataSet.Product);
// TODO: 這行程式碼會將資料載入 'yCCDBDataSet.Product' 資料表。您可以視需要進行移動或移除。
this.productTableAdapter.Fill(this.yCCDBDataSet.Product);

try
{
SqlConnection cn = new SqlConnection(cnStr);
SqlDataAdapter da = new SqlDataAdapter("Select * From Prodect",cn);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
catch
{
MessageBox.Show("檔案開啟錯誤....");
}

}

但Form 一開啟就直接出現 檔案開啟錯誤

這是新增資料Button的內容

private void buAdd_Click(object sender, EventArgs e)
{
try
{
SqlConnection cn = new SqlConnection(cnStr);
cn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText =
"INSERT INTO Product(P_Id,P_Name,P_PN,P_SN)VALUES(4,N'asdd',N'12345',N'U)";
cmd.Connection = cn;
cmd.ExecuteNonQuery();
fmProduct_Load(sender, e);
}
catch
{
MessageBox.Show("資料錯誤,請重新檢查....");

}
}


在按下新增資料的Button,也是直接出現 資料錯誤,請重新檢查....

不知是那裡沒有設定好,還請前輩指教 ,謝謝




搜尋相關Tags的文章: [ Local 資料存取問題 ] ,
本篇文章發表於2018-06-12 08:56
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

春天
檢舉此回應
你的cnStr 長怎樣
本篇文章回覆於2018-06-13 09:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Mike
檢舉此回應
前輩,您好

這是我的 cnStr

String cnStr = @"Data Source=(LocalDB)\MSSQLLocalDB; AttachDbFilename=D:\YCC\YCC\YCC\DB\YCCDB.mdf; Integrated Security=True; Connect Timeout=30";
本篇文章回覆於2018-06-13 11:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

春天
檢舉此回應
把Try Catch改成這樣

另外ButtonClick裡 "INSERT INTO Product(P_Id,P_Name,P_PN,P_SN)VALUES(4,N'asdd',N'12345',N'U)" 這行少一個 ', N'U)改成N'U')
本篇文章回覆於2018-06-13 13:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Mike
檢舉此回應
我改成

try
{
SqlConnection cn = new SqlConnection(cnStr);
SqlDataAdapter da = new SqlDataAdapter("Select * From Prodect",cn);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
catch (Exception e)
{
// MessageBox.Show("檔案開啟錯誤....");
MessageBox.Show(e.Message);
}

執行會出現以下訊息 ,這個 e 變數 我該怎麼宣告?

嚴重性 程式碼 說明 專案 檔案 行 隱藏項目狀態
錯誤 CS0136 無法在此範圍宣告名為 'e' 的區域變數或參數,因為該名稱已用於封入區域變數範圍,以定義區域變數或參數。 YCC D:\YCC\YCC\YCC\fmProduct.cs 47 作用中

ButtonClick 我修正錯誤後,還是無法新增成功,這和上面資料庫沒有開啟成功是不是有關係。

謝謝
本篇文章回覆於2018-06-13 14:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

春天
檢舉此回應
意思是變數e用過了,改叫ex就好了...,改完之後執行看錯誤訊息說什麼
本篇文章回覆於2018-06-13 14:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Mike
檢舉此回應
我改叫 ex 執行出現 這個對話窗訊息

invalid object name 'product'.

我的專案作法是這樣,

我先建了一個Form 叫fmMainmenu 這個Form 我放了menustrip 元件,先設了一個叫產品建立的項目
,點了這項目 在去呼叫fmProduct 這個form ,從fmProduct 新增資料。

只是我不知知我這種增加form 的方式對嗎,我是在 fmMainmenu 裡,選 專案\加入Windows Form ,產生一個新form,
更改名稱為fmProduct,在去作上方指令設定。

謝謝
本篇文章回覆於2018-06-13 14:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

春天
檢舉此回應
問題出在資料庫,你的Table出了問題,具體的排除方式上網找找吧
Stackoverflow
本篇文章回覆於2018-06-13 15:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Mike
檢舉此回應
謝謝指點,我已經自己找到問題。
本篇文章回覆於2018-06-14 08:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.