0

現在、学校向けのプロジェクトに取り組んでいますが、これを解決することはできません。

フォームがあり、英語の文字を挿入すると正常に機能し、情報がDBに挿入されますが、ヘブライ文字(@form)を挿入しても何も起こりません。

ここで、明確にするために、ヘブライ文字を挿入しても、SQL挿入を含む「if」ブロックに入ることを100%テストしました。

プロジェクト全体は、Visual Studio WebDeveloper2008で管理されます。

ヘブライ語で書かれた値を手動で挿入すると、DBはそれらを保存して出力できますが、それらのセル(@form)を更新しようとすると、ヘブライ語のすべての文字が疑問符になります。

誰か助けてもらえますか?とても感謝しております。

みんなありがとう

編集:

これが私の挿入クエリです:(エラーはList<string>、MyAdoHelper.csが次に来る)

if (Errors.Count == 0)
{
      string Add_Member = "INSERT INTO members (name, password, email, gender, registration_date) VALUES ('" + Nickname + "', '" + Password + "', '" + Email + "', '" + Gender + "', '" + DateTime.Now.ToString() + "')";

      MyAdoHelper.DoQuery(GlobalVar.DatabaseName, Add_Member);

      Errors.Add(GlobalVar.GlobalStatus["Register_Success"]);
}

MyAdoHelper.cs:

public class MyAdoHelper
{
    public MyAdoHelper()
    {
    }

    public static SqlConnection ConnectToDb(string fileName)
    {
        string path = @"C:\Users\Guy\Desktop\Project\App_Data\";
        path += fileName;
        string connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" +
                             path +
                             ";Integrated Security=True;User Instance=True";
        SqlConnection conn = new SqlConnection(connString);
        return conn;
    }

    public static void DoQuery(string fileName, string sql)
    {
        SqlConnection conn = ConnectToDb(fileName);
        conn.Open();
        SqlCommand com = new SqlCommand(sql, conn);
        com.ExecuteNonQuery();
        com.Dispose();
        conn.Close();
    }

    public static int RowsAffected(string fileName, string sql)       
    {
        SqlConnection conn = ConnectToDb(fileName);
        conn.Open();
        SqlCommand com = new SqlCommand(sql, conn);
        int rowsA = com.ExecuteNonQuery();
        conn.Close();
        return rowsA;
    }

    public static bool IsExist(string fileName, string sql)
    {
        SqlConnection conn = ConnectToDb(fileName);
        conn.Open();
        SqlCommand com = new SqlCommand(sql, conn);
        SqlDataReader data = com.ExecuteReader();
        bool found;
        found = (bool)data.Read();

        conn.Close();
        return found;
    }

    public static DataTable ExecuteDataTable(string fileName, string sql)
    {
        SqlConnection conn = ConnectToDb(fileName);
        conn.Open();
        SqlDataAdapter tableAdapter = new SqlDataAdapter(sql, conn);
        DataTable dt = new DataTable();
        tableAdapter.Fill(dt);
        return dt;
    }

    public static void ExecuteNonQuery(string fileName, string sql)
    {
        SqlConnection conn = ConnectToDb(fileName);
        conn.Open();
        SqlCommand command = new SqlCommand(sql, conn);
        command.ExecuteNonQuery();
        conn.Close();
    }

    public static int CountTableRows(string TableName)
    {
        SqlConnection Conn = MyAdoHelper.ConnectToDb(GlobalVar.DatabaseName);
        Conn.Open();
        string TotalRows = "SELECT COUNT(*) FROM " + TableName;
        SqlCommand Cmd = new SqlCommand(TotalRows, Conn);
        return (int)Cmd.ExecuteScalar();
    }
}
4

2 に答える 2

0

DBのヘブライ文字フィールドにnvarcharsを使用したと思います...

于 2012-04-20T20:41:50.737 に答える
0

Microsoft sql サーバーを使用している場合は、次のようなことを試してください。

INSERT INTO tabelle (Spalte) VALUES (N'äüö');

また、使用することも確認してくださいnvarchar

于 2012-04-20T20:55:27.807 に答える