如何将变量传递到SQL字符串字段?

时间:2019-05-19 23:33:01

标签: c# mysql sql

我试图直接在我的SQL字符串字段中传递一个变量,但是找不到正确的语法。

我尝试通过“ {variable}”或“ @variable”进行尝试,但是当我将其提供给软件时,它就像字符串一样分配!

我正在获取SQL字符串的函数(正在运行)

public List<Dare> getDares()
        {
            if (myDataSet.Tables["TousLesGages"] != null)
            {
                myDataSet.Tables["TousLesGages"].Clear();
            }

            List<Dare> dares = new List<Dare>();

            connect();

            query = "SELECT * FROM Dare";
            mySqlCommand.CommandText = query;
            myDataAdapter.SelectCommand = mySqlCommand;
            myDataAdapter.Fill(myDataSet, "TousLesGages");

            foreach (DataRow row in myDataSet.Tables["TousLesGages"].Rows)
            {
                Dare dare = new Dare((int)row.ItemArray[0], 
                                     row.ItemArray[1].ToString(),
                                     category.getCategoryById((int)row.ItemArray[2]),
                                     type.getTypeById((int)row.ItemArray[3]),
                                     null);
                dares.Add(dare);
            }

            return dares;
        }

我如何分配它:

gage = dare.getDares()[rndGage.Next(0, dare.getDares().Count)];
lblDare.Text = gage.text;

我希望{drink}的输出是1到5之间的整数(我已经创建了Random对象以允许它,顺便说一下,它的名称为“ drink”)

Server Side

Client Side

1 个答案:

答案 0 :(得分:0)

好的,我找到了一种无需使用库即可实现的方法。您只能对字符串使用字符串插值,而不能对变量使用字符串,例如:

string name = "John";
string result = $"{name}";

但是!取而代之的是,我使用了string.Format()函数:

// gage.Text is a string containing "bla bla {0} bla"
// drink is an integer between 1 and 5

lblDare.Text = string.Format(gage.text, drink);

我希望它将对人们有所帮助! :)