- PR -

SQL SERVER

1
投稿者投稿内容
シチ
会議室デビュー日: 2005/12/16
投稿数: 16
投稿日時: 2005-12-16 04:06
コンピュータ初心者のシチです。よろしくお願いします。
現在SQL SERVERを使用してデータベースへの格納を行っています。
例えば
string password
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte [] passwd = sha1.Computehash(Encoding.ASCII.GetBytes(password));

Hashtable ht = new Hashtable();
ht.Add("Password", passwd);
InsertCommand("UserInfo", ht);
のようにハッシュテーブルを利用して暗号化したパスワードをバイナリ列として挿入したいのですが挿入することができません。
ちなみに、ExecuteScalarにより行います。
データベースのデータ型はバイナリで長さ50としてあります。
誰か助けてください。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-12-16 07:15
引用:

シチさんの書き込み (2005-12-16 04:06) より:
のようにハッシュテーブルを利用して暗号化したパスワードをバイナリ列として挿入したいのですが挿入することができません。


それは実行時例外が発生すると言うことですか?何処で、どのような例外が起こるのですか?肝心のデータベースへの格納処理は何処に?技術系メーリングリストで質問するときのパターン・ランゲージを踏まえて再質問してください。


_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
シチ
会議室デビュー日: 2005/12/16
投稿数: 16
投稿日時: 2005-12-16 08:12
public string InsertCommand(string table, Hashtable data)
{
string queryString = "insert into " + table;
string keyString = " (", valueString = " values (";

foreach(DictionaryEntry entry in data)
{
keyString += entry.Key.ToString() + ", ";
valueString += "'" + entry.Value.ToString() + "', ";
}
keyString = keyString.Substring(0, keyString.Length-2) + ")";
valueString = valueString.Substring(0, valueString.Length-2) + ");";

queryString += keyString + valueString;

return ExecuteScalar(queryString);
}

public string ExecuteScalar(string queryString)
{
try
{
string connMsg = "server=SHICHINOHE;"
+ "User=*****;"
+ "Password=*****;"
+ "database=NUGS";
conn = new SqlConnection(connMsg);
SqlCommand cmd = new SqlCommand(queryString, conn);
conn.Open();
object tmpObj = cmd.ExecuteScalar();

if(tmpObj == null)
{
return null;
}
else
{
return tmpObj.ToString();
}
}
catch(Exception ex)
{
return ex.Message;
}
}
すいませんでした。上記が実際の格納するためのコードです。
ちなみに例外処理は発生しません。
なぜかデータ型がimageだと格納されるのですが。
よろしくお願いします。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-12-16 16:04
パラメータマーカーを利用してください。
1

スキルアップ/キャリアアップ(JOB@IT)