使用c#console应用程序中的变量从数据库获取值

时间:2018-02-03 21:10:52

标签: c# sql-server

我有一个字符串作为c_number。我想从我的数据库中获取数据,其中数字是主键。它总是给出c_number无效列的错误。我的列名是数字。

static void movies_on_rent()
{
    SqlConnection con;
    SqlDataReader reader;
    try
    {
        Console.Clear();
        con = new SqlConnection(Properties.Settings.Default.connectionSQL);
        con.Open();
        Console.Write("Enter Customer phone :");
        string c_number = Convert.ToString(Console.ReadLine());
        reader = new SqlCommand("select * from customer_info where number=c_number", con).ExecuteReader();
        if (reader.HasRows)
        {
            while (reader.Read())
            {
                Console.WriteLine("{0}\t\t\t{1}   {2}   {3}", reader.GetString(0), reader.GetInt32(1), reader.GetInt32(2), reader.GetString(3));
            }
        }
        else
        {
            Console.WriteLine("No rows found.");
        }
        reader.Close();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    Console.ReadKey();
}

1 个答案:

答案 0 :(得分:0)

确保您声明变量。此时C_Number尚未分配给任何内容,并且由于缺少引号(并且大多数情况与您为该列选择的数据类型),因此未将其标记为值。

请尝试执行以下操作。

    items[tag].sensors = [];
    API.getObjects(sessionData, userDetails, tag).then(links => {

    Object.keys(links.link).forEach(link => {
        API.getObjects(sessionData, userDetails, link).then(objLink => {
            Object.keys(objLink.link).forEach(function (key) {
                let obj = objLink.link[key];
                if (obj && obj.type === 'sensor') {
                    API.getSensorNames(sessionData, key).then(response => {
                        const sensor =  response.sensor;
                        // some sensor calculations....
                        items[tag].sensors.push(sensor);
                    });
                }
            });
        });
    });
});
// this part only works if it's surrounded with timeout
setTimeout(function() {
    let processedItems = [];
    for (var key in items) {
        if (items.hasOwnProperty(key)) {
            processedItems.push(items[key]);
        }
    }
    self.setState({
        items: processedItems
    });

}, 1000);

另外,使用"使用" " IDisposable"界面可用。