Discussion:
テキストボックスに入力された内容をAccessファイルに保存する方法
(too old to reply)
C#Sharp.com
2005-05-11 11:38:03 UTC
Permalink
C#初心者です。
テキストボックスに入力された文字をAccessファイルに保存する方法を
しりたく思います。

下記ソースコード例1でAccessファイルに保存できるのですが
テキストボックスからは文字列(textBox1.Text)を取得していますので
例2のように設定するとエラーとなります。
そこで、このような場合、どのようにすればよいのかご教示願いたく
よろしくお願いします。

例1
comd = new System.Data.OleDb.OleDbCommand(
   "INSERT INTO m_機種 values('s000', '98765')", cn);
   comd.ExecuteNonQuery();
例2
comd = new System.Data.OleDb.OleDbCommand(
 "INSERT INTO m_機種 values(textBox1.Text,textBox1.Text)",cn);
   comd.ExecuteNonQuery();
Kaoru Kodaka
2005-05-11 12:03:27 UTC
Permalink
$B$+$*$/(B $B$G$9!#(B

On Wed, 11 May 2005 04:38:03 -0700
$B%F%-%9%H%\%C%/%9$KF~NO$5$l$?J8;z$r(BAccess$B%U%!%$%k$KJ]B8$9$kJ}K!$r(B
$B$7$j$?$/;W$$$^$9!#(B
$B$=$NA0$K!"J8;zNs$N07$$J}$K$D$$$F3X$s$G$*$$$?$[$&$,$h$$$H;W$$(B
$B$^$9!#(B
comd = new System.Data.OleDb.OleDbCommand(
$B!!(B"INSERT INTO m_$B5!<o(B values(textBox1.Text,textBox1.Text)",cn);
comd = new System.Data.OleDb.OleDbCommand(
$B!!(B"INSERT INTO m_$B5!<o(B values("' + textBox1.Text + "', '" + textBox1.Text + "')",cn);

txtBox1 $B$K(B "aaa" $B$H$$$&J8;zNs$,@_Dj$5$l$F$$$k$H$7$F!"7k2LE*$K!"(B

$B!!(B"INSERT INTO m_$B5!<o(B values('aaa', 'aaa')"

$B$H$$$&J8;zNs$,:n$i$l$k$3$H$K$J$j$^$9!#(B

$B!t$"$H!"J8;zNs7k9g$G(B SQL $B%/%(%j!<$r:n$k$N$O;_$a$F$*$$$?$[$&(B
$B$,$$$$$G$9!#%Q%i%a!<%?%/%(%j!<$r;H$$$^$7$g$&!#>\$7$/$O!"(B
"SQL $B%$%s%8%'%/%7%g%s(B" $B$K$D$$$FD4$Y$F$_$F$/$@$5$$!#(B

---
MVP kaok = MVP.ChangeMvpCategory("for C# 2004-2005.");
kaok.Web = "http://www.antoine.st/";
C#Sharp.com
2005-05-12 00:16:01 UTC
Permalink
下記回答有難うございます。
動作しました。
文字列の扱い方ですが、何か参考資料等あれば
教えて頂きたくお願いします。

もともと、組み込み系のファームウエア設計ばかり行なっていましたので
文字列操作、データベース等の知識がなく困っています。
かおく です。
On Wed, 11 May 2005 04:38:03 -0700
Post by C#Sharp.com
テキストボックスに入力された文字をAccessファイルに保存する方法を
しりたく思います。
その前に、文字列の扱い方について学んでおいたほうがよいと思い
ます。
Post by C#Sharp.com
comd = new System.Data.OleDb.OleDbCommand(
 "INSERT INTO m_機種 values(textBox1.Text,textBox1.Text)",cn);
comd = new System.Data.OleDb.OleDbCommand(
 "INSERT INTO m_機種 values("' + textBox1.Text + "', '" + textBox1.Text + "')",cn);
txtBox1 に "aaa" という文字列が設定されているとして、結果的に、
 "INSERT INTO m_機種 values('aaa', 'aaa')"
という文字列が作られることになります。
#あと、文字列結合で SQL クエリーを作るのは止めておいたほう
がいいです。パラメータクエリーを使いましょう。詳しくは、
"SQL インジェクション" について調べてみてください。
Kaoru Kodaka
2005-05-12 02:11:57 UTC
Permalink
$B$+$*$/(B $B$G$9!#(B

On Wed, 11 May 2005 17:16:01 -0700
$BJ8;zNs$N07$$J}$G$9$,!"2?$+;29M;qNAEy$"$l$P(B
$B65$($FD:$-$?$/$*4j$$$7$^$9!#(B
$B$^$:$O!"%X%k%W$N"-JU$j$G$7$g$&$+!#(B

[MSDN $B%i%$%V%i%j(B 2004 $BG/(B 10$B7n%j%j!<%9(B]
+ [.NET $B3+H/(B]
+ [.NET $B3+H/(B]
+ [Visual Studio .NET]
+ [$B@=IJ%I%-%e%a%s%H(B]
+ [Visual Basic $B$H(B Visual C#]
+ [$B%j%U%!%l%s%9(B]
+ [Visual C# $***@8l(B]
+ [C# $B%W%m%0%i%^!<%:(B $B%j%U%!%l%s%9(B]
+ [C# $B$N%-!<%o!<%I(B]
+ [$B7?(B]
+ [$B;2>H7?(B]
+ [string]

---
MVP kaok = MVP.ChangeMvpCategory("for C# 2004-2005.");
kaok.Web = "http://www.antoine.st/";
C#Sharp.com
2005-05-18 08:37:41 UTC
Permalink
すみません。やはりまだ分かりません。
下記1)と2)の意味合いが分かりません。
1)" + textBox1.Text + "
2)"textBox1.Text"

+ は、”+ 演算子は、文字列を連結します。”と記載されていますが
はたしてどういう意味でしょうか?
かおく です。
On Wed, 11 May 2005 17:16:01 -0700
Post by C#Sharp.com
文字列の扱い方ですが、何か参考資料等あれば
教えて頂きたくお願いします。
まずは、ヘルプの↓辺りでしょうか。
[MSDN ライブラリ 2004 年 10月リリース]
+ [.NET 開発]
+ [.NET 開発]
+ [Visual Studio .NET]
+ [製品ドキュメント]
+ [Visual Basic と Visual C#]
+ [リファレンス]
+ [Visual C# 言語]
+ [C# プログラマーズ リファレンス]
+ [C# のキーワード]
+ [型]
+ [参照型]
+ [string]
---
MVP kaok = MVP.ChangeMvpCategory("for C# 2004-2005.");
kaok.Web = "http://www.antoine.st/";
Kaoru Kodaka
2005-05-18 13:18:06 UTC
Permalink
$B$+$*$/(B $B$G$9!#(B

On Wed, 18 May 2005 01:37:41 -0700
+ $B$O!"!I(B+ $B1i;;;R$O!"J8;zNs$rO"7k$7$^$9!#!I$H5-:\$5$l$F$$$^$9$,(B
$B$O$?$7$F$I$&$$$&0UL#$G$7$g$&$+!)(B
string s = "abc" + "def";

$B$G!"(Bs $B$O(B "abcdef" $B$H$J$j$^$9!#(B
$B2<5-#1!K$H#2!K$N0UL#9g$$$,J,$+$j$^$;$s!#(B
$B#1!K(B" + textBox1.Text + "
$B#2!K(B"textBox1.Text"
$B$3$l$@$1$G$O0UL#$r$J$5$J$$$N$G$9$,!"$?$H$($P!"(B

string s = "abc" + textBox1.Text + "def";

$B$H(B

string s = "abc + textBox1.Text + def";

$B$G$O!"7k2L$,0[$J$j$^$9!#$I$&0c$&$+$O!";n$7$F$_$l$P0lL\NFA3$+(B
$B$H!#(B

---
MVP kaok = MVP.ChangeMvpCategory("for C# 2004-2005.");
kaok.Web = "http://www.antoine.st/";
C#Sharp.com
2005-05-22 10:18:02 UTC
Permalink
回答ありがとうございます。
違いはわかりました。
しかし、下記1)のプログラムを動作させるためになぜ、+ が必要なのかが
わかりません。2)でいけるようにしか思えないのです。
textBox1.Textはどの文字と連結すると考えられるのでしょうか?

1) comd = new System.Data.OleDb.OleDbCommand(
"INSERT INTO m_機種 values('" + textBox1.Text + "', '" + textBox1.Text +
"')",cn);

2) comd = new System.Data.OleDb.OleDbCommand(
"INSERT INTO m_機種 values('" textBox1.Text "', '" textBox1.Text "')",cn);
Post by C#Sharp.com
下記1)と2)の意味合いが分かりません。
1)" + textBox1.Text + "
2)"textBox1.Text"
これだけでは意味をなさないのですが、たとえば、
string s = "abc" + textBox1.Text + "def";

string s = "abc + textBox1.Text + def";
Kaoru Kodaka
2005-05-22 11:55:19 UTC
Permalink
$B$+$*$/(B $B$G$9!#(B

On Sun, 22 May 2005 03:18:02 -0700
$B$7$+$7!"2<5-#1!K$N%W%m%0%i%`$rF0:n$5$;$k$?$a$K$J$<!"(B+ $B$,I,MW$J$N$+$,(B
$B$o$+$j$^$;$s!##2!K$G$$$1$k$h$&$K$7$+;W$($J$$$N$G$9!#(B
$B:G=*E*$KI,MW$JJ8;zNs$O$I$&$$$&J8;zNs$G$9$+!)(B $B$^$:$O!"$=$l$r(B
textBox1.Text$B$O$I$NJ8;z$HO"7k$9$k$H9M$($i$l$k$N$G$7$g$&$+!)(B
$BJ8;z$H!"$G$O$J$/!"J8;zNs$H$G$9!#$$$:$l$K$;$h!"(B
$B#1!K(B comd = new System.Data.OleDb.OleDbCommand(
"INSERT INTO m_$B5!<o(B values('" + textBox1.Text + "', '" + textBox1.Text +
"')",cn);
$B#2!K(B comd = new System.Data.OleDb.OleDbCommand(
"INSERT INTO m_$B5!<o(B values('" textBox1.Text "', '" textBox1.Text "')",cn);
string s = "INSERT INTO m_$B5!<o(B values('" + textBox1.Text + "', '" + textBox1.Text + "')";
string s = "INSERT INTO m_$B5!<o(B values('" textBox1.Text "', '" textBox1.Text "')";

$B$=$l$>$l!"%a%C%;!<%8%\%C%/%9$GI=<($9$k$J$j$7$F!"F0:n$N0c$$$r(B
$B3NG'$7$F$_$F$O$$$+$,$G$7$g$&$+!#(B

$B!t$C$F!"FsHVL\$O%3%s%Q%$%k%(%i!<$K$J$k$o$1$G$9$,!#(B

---
MVP kaok = MVP.ChangeMvpCategory("for C# 2004-2005.");
kaok.Web = "http://www.antoine.st/";
C#Sharp.com
2005-05-22 13:29:01 UTC
Permalink
それぞれ、メッセージボックスで表示するなりして、動作の違いを
確認してみてはいかがでしょうか。
#って、二番目はコンパイルエラーになるわけですが。
はははっ、わかりました。
+は文字列と連結ということでなっとくしました。
Loading...