以前の質問 (リンク)の解決策が見つからなかったので、解決策を期待して新しい質問を投稿します。ルールを破っていたら申し訳ありませんが、解決策を受け取っていません。
行を更新しようとして、送信されたクエリを追跡した場合、たとえば次のようになります。
UPDATE global_status SET title = 'Login_Failure', info = 'שדכ' WHERE id = '2'
送信される最終的なクエリはヘブライ語であることがわかります。それ以前の問題ではありません。私はこのように実行します:
string Status_Update = "UPDATE global_status SET title = '" + Title + "', info = '" + Info + "' WHERE id = '" + Request.Form["Status_Key"] + "'";
MyAdoHelper.DoQuery(GlobalVar.DatabaseName, Status_Update);
メソッド:
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();
}
更新後、データベースには???が含まれています ヘブライ文字を挿入しました。
ヘブライ語の値を手動でデータベースに挿入し、それらを元に戻すこともできます。
DoQuery(); を使用して、ヘブライ語の値を挿入できる別のフォーム (登録) があります。
更新ページのソース コードは次のとおりです (レコードのタイトルと情報を更新していますが、特別なことは何もありません)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class admin_EditGlobalStatus : System.Web.UI.Page
{
public string StatusesTable;
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form["Status_Update"] != null)
{
string Title = Request.Form["Status_Title"].Secure();
string Info = Request.Form["Status_Info"].Secure();
Info = Info.Replace("/s", "<span class\"res\">").Replace("/e", "</span>");
string Status_Update = "UPDATE global_status SET title = '" + Title + "', info = '" + Info + "' WHERE id = '" + Request.Form["Status_Key"] + "'";
MyAdoHelper.DoQuery(GlobalVar.DatabaseName, Status_Update);
}
if (Request.Form["Status_Delete"] != null)
{
string Status_Delete = "DELETE FROM global_status WHERE id = '" + Request.Form["Status_Key"] + "'";
MyAdoHelper.DoQuery(GlobalVar.DatabaseName, Status_Delete);
}
string GetGlobalStatuses = "SELECT * FROM global_status";
DataTable dt = MyAdoHelper.ExecuteDataTable(GlobalVar.DatabaseName, GetGlobalStatuses);
if (dt.Rows.Count > 0)
{
StatusesTable = "<table cellspacing=\"15\">";
StatusesTable += "<th>כותרת ההודעה</th><th>מידע ההודעה</th>";
foreach (DataRow status in dt.Rows)
{
StatusesTable += "<tr><form method=\"post\" action=\"\">";
StatusesTable += "<input type=\"hidden\" name=\"Status_Key\" value=\"" + status["id"].ToString() + "\" />";
StatusesTable += "<td><input size=\"25\" dir=\"ltr\" type=\"text\" name=\"Status_Title\" value=\"" + status["title"].ToString() + "\" /></td>";
StatusesTable += "<td><input size=\"90\" type=\"text\" name=\"Status_Info\" value=\"" + status["info"].ToString().Secure() + "\" /></td>";
StatusesTable += "<td><input type=\"submit\" name=\"Status_Update\" value=\"עדכן\"><input type=\"submit\" name=\"Status_Delete\" value=\"מחק\"></td></form></tr>\r\n";
}
StatusesTable += "</table>";
}
else
{
StatusesTable = "<h1>אין משתמשים קיימים</h1>";
}
}
}
解決策を期待して、ありがとう!
男