MySQLへの参照するプログラムではまった…
今日は郵便番号→住所変換の処理を作成している。 1時間もあればできると思っていたが、おおはまり(^^ゞ
Oracleでは列の連結で 「列名||列名」で連結できるのだが、MySQLでは出来ない…
仕方がないので、add1, add2, add3で取り出すことにした。
SELECT文にパラメータを埋め込んで、郵便番号から住所を取り出すようにしたが、ネットを検索すると、パラメータの指定に「@」を付けていたので、迷わず
select add1, add2, add3 as address from zip where zipcode=@zip
と、書いた。
全く住所が返ってこない…
リファレンスマニュアルをなめ回すと、なんと「?」で指定してある…
結果、以下のようなコードでやっと住所が取ってこれた。あ~疲れた…
try等の例外処理は、全く入っていません。悪しからずご了承ください。
ちなみに、郵便番号のデータは 郵便局のサイト(http://www.post.japanpost.jp/zipcode/dl/kogaki.html)から入手したものを加工して参照しています。
今日は郵便番号→住所変換の処理を作成している。 1時間もあればできると思っていたが、おおはまり(^^ゞ
Oracleでは列の連結で 「列名||列名」で連結できるのだが、MySQLでは出来ない…
仕方がないので、add1, add2, add3で取り出すことにした。
SELECT文にパラメータを埋め込んで、郵便番号から住所を取り出すようにしたが、ネットを検索すると、パラメータの指定に「@」を付けていたので、迷わず
select add1, add2, add3 as address from zip where zipcode=@zip
と、書いた。
全く住所が返ってこない…
リファレンスマニュアルをなめ回すと、なんと「?」で指定してある…
結果、以下のようなコードでやっと住所が取ってこれた。あ~疲れた…
MySqlConnection conn = new MySqlConnection(Test1.Properties.Settings.Default.ConnectionString);
string selectQuery = "select add1, add2, add3 as address from zip where zipcode=?zip";
MySqlCommand MyCmd = new MySqlCommand(selectQuery, conn);
conn.Open();
string zip = textBox1.Text.Replace("-", "");
Console.WriteLine("zip=[{0}]", zip);
MyCmd.Parameters.Add("?zip", MySqlDbType.VarChar).Value = zip;
MySqlDataReader reader;
reader = MyCmd.ExecuteReader();
Console.WriteLine("Count:{0}", reader.FieldCount);
reader.Read();
Console.WriteLine("text:[{0}]", reader.GetString(0));
textBox2.Text = reader.GetString(0) + reader.GetString(1) + reader.GetString(2);
reader.Close();
conn.Close();
try等の例外処理は、全く入っていません。悪しからずご了承ください。
ちなみに、郵便番号のデータは 郵便局のサイト(http://www.post.japanpost.jp/zipcode/dl/kogaki.html)から入手したものを加工して参照しています。
コメント