Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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
C#:将多个字符串从窗体散列到类,再返回到窗体到SQL_C#_Sql_Sql Server_Class_Sha - Fatal编程技术网

C#:将多个字符串从窗体散列到类,再返回到窗体到SQL

C#:将多个字符串从窗体散列到类,再返回到窗体到SQL,c#,sql,sql-server,class,sha,C#,Sql,Sql Server,Class,Sha,我在想办法解决这个问题 我想用主窗体中的salt进行散列并将其发布到SQL Server,我的问题是目前我似乎不知道如何调用SQL语句的散列代码 问题是我似乎不知道如何将散列字符串调用到变量中。我遇到的一个错误是: 非静态字段、方法或对象的参考对象 属性'Functions.UniqueID' 如果我尝试了函数myFunction=newfunctions() 我得到: 没有给出与所需的形式化参数相对应的参数 参数 我试着查了一下,但真的是一片空白,因为我对编码还不熟悉,也不太理解所有人抛出的术

我在想办法解决这个问题

我想用主窗体中的salt进行散列并将其发布到SQL Server,我的问题是目前我似乎不知道如何调用SQL语句的散列代码

问题是我似乎不知道如何将散列字符串调用到变量中。我遇到的一个错误是:

非静态字段、方法或对象的参考对象 属性'Functions.UniqueID'

如果我尝试了
函数myFunction=newfunctions()

我得到:

没有给出与所需的形式化参数相对应的参数 参数

我试着查了一下,但真的是一片空白,因为我对编码还不熟悉,也不太理解所有人抛出的术语

我希望在类中使用它的原因是,我将在应用程序的多个实例中使用此哈希/salt

让我展示一下代码,也许有人能帮上忙:

主要形式: 接受者和接受者:

        public string IdentifyOrder
        {
            get { return txtOrder.Text; }
            set { txtOrder.Text = value; }
        }
        public string IdentifyStandard
        {
            get { return cmbStandard.Text; }
            set { cmbStandard.Text = value; }
        }
        public string IdentifyNote
        {
            get { return cmbNote.Text; }
            set { cmbNote.Text = value; }
        }
private void btnSubmitInfo_Click(object sender, EventArgs e)
        {
            try
            {
                using (SqlConnection con = new SqlConnection(Connection.MTRDataBaseConn))
                {

                    con.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandText = "INSERT INTO dbo.[myDatabase] ([Purchase Order], [Standard], [Notes], [Unique Identifier]) VALUES(@PurchaseOrder,@Standard,@Notes,@UniqueIdentifier)";

                    cmd.Connection = con;

                    SqlParameter pPurchaseOrder = new SqlParameter("@PurchaseOrder", SqlDbType.VarChar, 50);
                    SqlParameter pStandard = new SqlParameter("@Standard", SqlDbType.VarChar, 50);
                    SqlParameter pNotes = new SqlParameter("@Notes", SqlDbType.VarChar, 50);
                    SqlParameter pUID = new SqlParameter("@UniqueIdentifier", SqlDbType.VarChar, 50);


                    pPurchaseOrder.Value = txtPurchaseOrder.Text;
                    pStandard.Value = cmbStandard.Text;
                    pNotes.Value = txtNotes.Text;
                    pUID.Value = Functions.UniqueID;

                    cmd.Parameters.Add(pPurchaseOrder);
                    cmd.Parameters.Add(pStandard);
                    cmd.Parameters.Add(pNotes);
                    cmd.Parameters.Add(pUID);

                    //execute
                    cmd.ExecuteNonQuery();

                }
            }
            catch (SqlException ex)
            {
                //catch error
                MessageBox.Show(ex.Message);
            }
       }
public class Functions
    {
        public readonly MainForm Identifiers;
        public Functions(MainForm Identifiers)
        {
            this.Identifiers = Identifiers;
        }

        public void GenerateUniqueIdentifier()
        {
            string orderID = Identifiers.IdentifyOrder;
            string standardID = Identifiers.IdentifyStandard;
            string noteID = Identifiers.IdentiftNote;

           string salt = "" + orderID + "" + standardID + "" + noteID + "";
        }

        public String GenHash(String input, String salt)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(input + salt);
            System.Security.Cryptography.SHA256Managed sha256hashstring =
                new System.Security.Cryptography.SHA256Managed();
            byte[] hash = sha256hashstring.ComputeHash(bytes);

            return Convert.ToBase64String(hash);
        }

        public string UniqueID { get; set; }

    }
SQL语句:

        public string IdentifyOrder
        {
            get { return txtOrder.Text; }
            set { txtOrder.Text = value; }
        }
        public string IdentifyStandard
        {
            get { return cmbStandard.Text; }
            set { cmbStandard.Text = value; }
        }
        public string IdentifyNote
        {
            get { return cmbNote.Text; }
            set { cmbNote.Text = value; }
        }
private void btnSubmitInfo_Click(object sender, EventArgs e)
        {
            try
            {
                using (SqlConnection con = new SqlConnection(Connection.MTRDataBaseConn))
                {

                    con.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandText = "INSERT INTO dbo.[myDatabase] ([Purchase Order], [Standard], [Notes], [Unique Identifier]) VALUES(@PurchaseOrder,@Standard,@Notes,@UniqueIdentifier)";

                    cmd.Connection = con;

                    SqlParameter pPurchaseOrder = new SqlParameter("@PurchaseOrder", SqlDbType.VarChar, 50);
                    SqlParameter pStandard = new SqlParameter("@Standard", SqlDbType.VarChar, 50);
                    SqlParameter pNotes = new SqlParameter("@Notes", SqlDbType.VarChar, 50);
                    SqlParameter pUID = new SqlParameter("@UniqueIdentifier", SqlDbType.VarChar, 50);


                    pPurchaseOrder.Value = txtPurchaseOrder.Text;
                    pStandard.Value = cmbStandard.Text;
                    pNotes.Value = txtNotes.Text;
                    pUID.Value = Functions.UniqueID;

                    cmd.Parameters.Add(pPurchaseOrder);
                    cmd.Parameters.Add(pStandard);
                    cmd.Parameters.Add(pNotes);
                    cmd.Parameters.Add(pUID);

                    //execute
                    cmd.ExecuteNonQuery();

                }
            }
            catch (SqlException ex)
            {
                //catch error
                MessageBox.Show(ex.Message);
            }
       }
public class Functions
    {
        public readonly MainForm Identifiers;
        public Functions(MainForm Identifiers)
        {
            this.Identifiers = Identifiers;
        }

        public void GenerateUniqueIdentifier()
        {
            string orderID = Identifiers.IdentifyOrder;
            string standardID = Identifiers.IdentifyStandard;
            string noteID = Identifiers.IdentiftNote;

           string salt = "" + orderID + "" + standardID + "" + noteID + "";
        }

        public String GenHash(String input, String salt)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(input + salt);
            System.Security.Cryptography.SHA256Managed sha256hashstring =
                new System.Security.Cryptography.SHA256Managed();
            byte[] hash = sha256hashstring.ComputeHash(bytes);

            return Convert.ToBase64String(hash);
        }

        public string UniqueID { get; set; }

    }
我的课堂“功能”:

        public string IdentifyOrder
        {
            get { return txtOrder.Text; }
            set { txtOrder.Text = value; }
        }
        public string IdentifyStandard
        {
            get { return cmbStandard.Text; }
            set { cmbStandard.Text = value; }
        }
        public string IdentifyNote
        {
            get { return cmbNote.Text; }
            set { cmbNote.Text = value; }
        }
private void btnSubmitInfo_Click(object sender, EventArgs e)
        {
            try
            {
                using (SqlConnection con = new SqlConnection(Connection.MTRDataBaseConn))
                {

                    con.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandText = "INSERT INTO dbo.[myDatabase] ([Purchase Order], [Standard], [Notes], [Unique Identifier]) VALUES(@PurchaseOrder,@Standard,@Notes,@UniqueIdentifier)";

                    cmd.Connection = con;

                    SqlParameter pPurchaseOrder = new SqlParameter("@PurchaseOrder", SqlDbType.VarChar, 50);
                    SqlParameter pStandard = new SqlParameter("@Standard", SqlDbType.VarChar, 50);
                    SqlParameter pNotes = new SqlParameter("@Notes", SqlDbType.VarChar, 50);
                    SqlParameter pUID = new SqlParameter("@UniqueIdentifier", SqlDbType.VarChar, 50);


                    pPurchaseOrder.Value = txtPurchaseOrder.Text;
                    pStandard.Value = cmbStandard.Text;
                    pNotes.Value = txtNotes.Text;
                    pUID.Value = Functions.UniqueID;

                    cmd.Parameters.Add(pPurchaseOrder);
                    cmd.Parameters.Add(pStandard);
                    cmd.Parameters.Add(pNotes);
                    cmd.Parameters.Add(pUID);

                    //execute
                    cmd.ExecuteNonQuery();

                }
            }
            catch (SqlException ex)
            {
                //catch error
                MessageBox.Show(ex.Message);
            }
       }
public class Functions
    {
        public readonly MainForm Identifiers;
        public Functions(MainForm Identifiers)
        {
            this.Identifiers = Identifiers;
        }

        public void GenerateUniqueIdentifier()
        {
            string orderID = Identifiers.IdentifyOrder;
            string standardID = Identifiers.IdentifyStandard;
            string noteID = Identifiers.IdentiftNote;

           string salt = "" + orderID + "" + standardID + "" + noteID + "";
        }

        public String GenHash(String input, String salt)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(input + salt);
            System.Security.Cryptography.SHA256Managed sha256hashstring =
                new System.Security.Cryptography.SHA256Managed();
            byte[] hash = sha256hashstring.ComputeHash(bytes);

            return Convert.ToBase64String(hash);
        }

        public string UniqueID { get; set; }

    }

您需要创建
函数
类的对象,然后对其调用方法或访问其属性

像下面这样

//Previous code...

var functionsObj = new Functions(mainForm); // You need to pass the
     // object of class MainForm as argument to Functions constructor 
     //If this code is running in code behind for "MainForm" then you can do as following.
var functionObj = new Functions(this);
pPurchaseOrder.Value = txtPurchaseOrder.Text;
pStandard.Value = cmbStandard.Text;
pNotes.Value = txtNotes.Text;
pUID.Value = functionsObj.UniqueID;

//Next Code....

这应该可以解决问题。

错误似乎是指您创建函数类(在某个地方您有一个新函数(..),但您没有显示代码…您在代码中使用生成的哈希的确切位置?你想把散列存储在数据库中吗?我想把那个错误作为我尝试过的其他东西的引用发布@ChetanRanpariya我想将哈希代码存储在一个变量中。意思是完成的散列。。我想。。我对这个很陌生。UniqueID是您想要用来从
函数
类访问散列的属性?是否要为表单的每个输入值生成哈希?btnSubmitInfo是同一个表单(MainForm)?我尝试过这个,但我再次尝试,以确定是我。这将返回错误:
没有与函数的必需形式参数'Identifiers'相对应的参数。函数(MainForm)
谢谢!工作起来很有魅力。我不得不使用
var-functionObj=新函数(这个)