iT邦幫忙

0

關於Visual studio 上的sqlcommand

大家安安
小弟在下方的撰寫C#程式碼的時候可以執行
但是開啟其他form時卻出現下方的錯誤警示
程式碼寫在該form的load上
同樣的selectCmd內的程式碼在SSMS上可以執行並且顯示結果
麻煩大家可以告訴我哪裡錯嗎?
程式碼及錯誤圖如下

SqlConnection conn = new SqlConnection("Data Source=DESKTOP-TV1G01E;Initial Catalog=DAFU_DATABASE;Integrated Security=True;Pooling=False");
                conn.Open();
                string selectCmd = "SELECT          VENDOR, MATERAILS, MATERAILS_PROCESSING, WIDTH, COUNT(1) AS QUANTITY, SUM(WEIGHT) AS WEIGHT" +
                                   "FROM            線材明細表" +
                                   "GROUP BY   VENDOR, MATERAILS, MATERAILS_PROCESSING, WIDTH;";
                SqlDataAdapter da = new SqlDataAdapter(selectCmd, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                this.dataGridView1.DataSource = ds.Tables[0];
                da.Dispose();
                conn.Close();
尼克 iT邦高手 1 級 ‧ 2018-04-11 17:28:30 檢舉
TABLE 名稱是中文!

2 個回答

2
暐翰
iT邦大師 1 級 ‧ 2018-04-11 17:54:20
最佳解答

allenlwh 大大沒意外是正解

另外補充給大大,多利用@來串接多行字串
就不用字串加來加去
舉例:

	string selectCmd = @"
		SELECT          VENDOR, MATERAILS, MATERAILS_PROCESSING, WIDTH, COUNT(1) AS QUANTITY, SUM(WEIGHT) AS WEIGHT 
		FROM            線材明細表 
		GROUP BY   VENDOR, MATERAILS, MATERAILS_PROCESSING, WIDTH;
	";

而且編譯後系統會自動幫你加上\r\n\t
就不會出現少空白,出現SQL error問題

原來 @ 編譯後會加上 \r\n\t 長知識了
還有原來 $@ 可以共存,這個問題已經困擾我好久,我一直以為只能選一個用!!!
/images/emoticon/emoticon01.gif

stanly iT邦新手 5 級 ‧ 2018-04-11 21:33:26 檢舉

感謝
已經解決
@真的是很方便的方法

1
allenlwh
iT邦研究生 1 級 ‧ 2018-04-11 17:19:49
"FROM            線材明細表" +
"GROUP BY   VENDOR, MATERAILS

tablename 和 Group by 中間沒有空白,
變成"FROM 線材明細表GROUP BY VENDOR, MATERAILS",
改成以下這樣應該就可以了

"FROM            線材明細表 " +
"GROUP BY   VENDOR, MATERAILS
stanly iT邦新手 5 級 ‧ 2018-04-11 21:34:59 檢舉

感謝解答
雖然我加空白沒用
我用暐瀚大大的方式解決了問題

wancheng iT邦研究生 3 級 ‧ 2018-04-12 10:20:47 檢舉
_PROCESSING, WIDTH, COUNT(1) AS QUANTITY, SUM(WEIGHT) AS WEIGHT" +
                                   "FROM            線材明細表" +

不只 tablename 和 Group by 中間沒有空白,上一行 WEIGHT 和 FROM 也少了空白

我要發表回答

立即登入回答