Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database C#ASP.NET(VS 2008)数据库如果包含希伯来文字符,则会忽略INSERT_Database_Visual Studio 2008_Encode - Fatal编程技术网

Database C#ASP.NET(VS 2008)数据库如果包含希伯来文字符,则会忽略INSERT

Database C#ASP.NET(VS 2008)数据库如果包含希伯来文字符,则会忽略INSERT,database,visual-studio-2008,encode,Database,Visual Studio 2008,Encode,目前我正在为学校做一个项目,我无法解决这个问题 我有一个表单,如果你在表单中插入英文字符,它可以正常工作,并且信息会被插入数据库,但是如果我插入希伯来文字符(@form),什么都不会发生 现在,为了澄清,我已经测试了100%,即使我插入希伯来文字符,它也会进入包含sql插入的“if”块 整个项目由VisualStudioWebDeveloper2008管理 如果我手动插入希伯来文写的值,DB可以存储并输出这些值,但是当尝试更新这些单元格(@form)时,希伯来文中的所有字符都会变成问号 有人能帮

目前我正在为学校做一个项目,我无法解决这个问题

我有一个表单,如果你在表单中插入英文字符,它可以正常工作,并且信息会被插入数据库,但是如果我插入希伯来文字符(@form),什么都不会发生

现在,为了澄清,我已经测试了100%,即使我插入希伯来文字符,它也会进入包含sql插入的“if”块

整个项目由VisualStudioWebDeveloper2008管理

如果我手动插入希伯来文写的值,DB可以存储并输出这些值,但是当尝试更新这些单元格(@form)时,希伯来文中的所有字符都会变成问号

有人能帮我吗?我会非常感激的

谢谢,伙计

编辑:

这是我的插入查询:(错误是一个
列表
,接下来是myadoheloper.cs)

myadoheloper.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();
    }
}

我想,您在数据库中使用了nvarchars for hebrew characters字段…

如果您使用的是microsoft sql server,请尝试类似的方法

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

还要确保您使用了
nvarchar

您能发布代码示例吗?没有代码的情况下进行故障排除有点困难。它可能很简单,比如不使用参数化查询,以及导致冲突的意外字符(例如,无意的sql注入),因此最好将其和其他简单的事情排除在外。如果是sql数据库,它是否设置为使用希伯来代码页?如果手动插入希伯来值,它工作正常,您也可以显示它们,但是当我通过表单更新它们时,它会变成???,或者不会向数据库发送任何内容。在网站上显示希伯来语也很有效。将其发送到数据库时出现问题,例如它不接受字符,并忽略我的请求。是的,这是导致问题的原因吗?谢谢你的帮助。我确实使用了nvarchar,(Splate)在做什么?我已经尝试了你的解决方案,但它仍然没有插入希伯来语值。这只是一个例子。如果插入值,请使用N'value'。N将帮助您;)哈哈,刚刚翻译过来,现在我明白了:)我现在就试试
INSERT INTO tabelle (Spalte) VALUES (N'äüö');