SQLデータベースに接続するC#で記述されたWindowsアプリケーションがあります。
アプリケーション内にテキストフィールドがあり、次のようにデータベースを更新します。
string name = textBox60.Text;
string sql = "insert into myTable(Name) values ('" + name + "')";
DbHelper.ExecuteNonquery(sql);
public static int ExecuteNonquery(string sql)
{
using (SqlConnection cn = new SqlConnection(constr))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
else if (cn.State == ConnectionState.Open)
{
cn.Close();
cn.Open();
}
else if (cn.State == ConnectionState.Broken)
{
cn.Close();
cn.Open();
}
using (SqlCommand cm = new SqlCommand(sql, cn))
{
return cm.ExecuteNonQuery();
}
}
}
ただしnchar
、データベース内のタイプを持つすべてのデータについて、それらは空白でいっぱいです。たとえば、テキストフィールドにabc"abc___________________"
と入力すると、データベースをチェックすると、 (空白の)次のようになります。
文字列を読み取ったときにのみ文字列をトリミングするか、そのようなデータが大量にある場合にUPDATE
データSETを使用する以外に、これを防ぐ方法。TRIM(data)
手伝ってくれてありがとう。