Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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# “;为命令提供的参数不足”;执行SQLite查询时出错_C#_Parameters_Sqlite_Visual Studio 2013 - Fatal编程技术网

C# “;为命令提供的参数不足”;执行SQLite查询时出错

C# “;为命令提供的参数不足”;执行SQLite查询时出错,c#,parameters,sqlite,visual-studio-2013,C#,Parameters,Sqlite,Visual Studio 2013,我试图使用Windows窗体文本框中的值作为SQLite查询的输入。基本上,我加载SQL并尝试设置参数(在本例中,是查询的“键”) 以下是我当前的代码: try { string connectionString = @" Data Source = c:\milap\milap.s3db; Version = 3"; var conn = new SQLiteConnection(connectionString); var conn = new SQLiteConne

我试图使用Windows窗体文本框中的值作为SQLite查询的输入。基本上,我加载SQL并尝试设置参数(在本例中,是查询的“键”)

以下是我当前的代码:

try {
    string connectionString = @" Data Source = c:\milap\milap.s3db; Version = 3";
    var conn = new SQLiteConnection(connectionString);
    var conn = new SQLiteConnection(connectionString);
    SQLiteCommand cmd = new SQLiteCommand();

    cmd.Connection = conn;
    conn.Open();

    cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";
    SQLiteCommand command = new SQLiteCommand(cmd.CommandText, conn);
    cmd.Parameters.AddWithValue("@KEY", key.Text);
    SQLiteDataReader reader = command.ExecuteReader();

    while (reader.Read()) {
        ON1.Text = reader["VC1ON"].ToString();
    }
} catch (Exception ex) {
     MessageBox.Show(ex.Message);
}
这总是让我感到:

SQLite错误提供给命令的参数不足

我也尝试过:

SQLiteParameter param = new SQLiteParameter();
param.ParameterName = "@KEY";
param.Value = key.Text;
cmd.Parameters.Add(param);
以及:

cmd.Parameters.AddWithValue("@KEY", key.Text);

没有运气。有什么想法吗?

您有两个独立的命令:

cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";
SQLiteCommand command = new SQLiteCommand(cmd.CommandText, conn);
cmd.Parameters.AddWithValue("@KEY", key.Text);
SQLiteDataReader reader = command.ExecuteReader();
您已将参数值指定给
cmd
,但同时实际执行的是
命令

cmd.Parameters
更改为
command.Parameters
,这可能会使您启动并运行,但您必须清理代码。(您也有重复的连接实例,但这是无效的,因为它们甚至有相同的名称…)

这里有一个清理代码的快速尝试,但它正在运行中,因此您可能需要调整它以使其编译。
使用
块可确保您处置资源

try
{
    string connectionString = @" Data Source = c:\milap\milap.s3db; Version = 3";

    using (var conn = new SQLiteConnection(connectionString))
    {
        using (var cmd = new SQLiteCommand())
        {
            cmd.Connection = conn;
            cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";

            conn.Open();

            cmd.Parameters.AddWithValue("@KEY", key.Text);
            var reader = cmd.ExecuteReader();

            while (reader.Read())
                ON1.Text = reader["VC1ON"].ToString();
        }
    }
}
catch (Exception ex)
{
     MessageBox.Show(ex.Message);
}

您有两个独立的命令:

cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";
SQLiteCommand command = new SQLiteCommand(cmd.CommandText, conn);
cmd.Parameters.AddWithValue("@KEY", key.Text);
SQLiteDataReader reader = command.ExecuteReader();
您已将参数值指定给
cmd
,但同时实际执行的是
命令

cmd.Parameters
更改为
command.Parameters
,这可能会使您启动并运行,但您必须清理代码。(您也有重复的连接实例,但这是无效的,因为它们甚至有相同的名称…)

这里有一个清理代码的快速尝试,但它正在运行中,因此您可能需要调整它以使其编译。
使用
块可确保您处置资源

try
{
    string connectionString = @" Data Source = c:\milap\milap.s3db; Version = 3";

    using (var conn = new SQLiteConnection(connectionString))
    {
        using (var cmd = new SQLiteCommand())
        {
            cmd.Connection = conn;
            cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";

            conn.Open();

            cmd.Parameters.AddWithValue("@KEY", key.Text);
            var reader = cmd.ExecuteReader();

            while (reader.Read())
                ON1.Text = reader["VC1ON"].ToString();
        }
    }
}
catch (Exception ex)
{
     MessageBox.Show(ex.Message);
}

您有两个独立的命令:

cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";
SQLiteCommand command = new SQLiteCommand(cmd.CommandText, conn);
cmd.Parameters.AddWithValue("@KEY", key.Text);
SQLiteDataReader reader = command.ExecuteReader();
您已将参数值指定给
cmd
,但同时实际执行的是
命令

cmd.Parameters
更改为
command.Parameters
,这可能会使您启动并运行,但您必须清理代码。(您也有重复的连接实例,但这是无效的,因为它们甚至有相同的名称…)

这里有一个清理代码的快速尝试,但它正在运行中,因此您可能需要调整它以使其编译。
使用
块可确保您处置资源

try
{
    string connectionString = @" Data Source = c:\milap\milap.s3db; Version = 3";

    using (var conn = new SQLiteConnection(connectionString))
    {
        using (var cmd = new SQLiteCommand())
        {
            cmd.Connection = conn;
            cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";

            conn.Open();

            cmd.Parameters.AddWithValue("@KEY", key.Text);
            var reader = cmd.ExecuteReader();

            while (reader.Read())
                ON1.Text = reader["VC1ON"].ToString();
        }
    }
}
catch (Exception ex)
{
     MessageBox.Show(ex.Message);
}

您有两个独立的命令:

cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";
SQLiteCommand command = new SQLiteCommand(cmd.CommandText, conn);
cmd.Parameters.AddWithValue("@KEY", key.Text);
SQLiteDataReader reader = command.ExecuteReader();
您已将参数值指定给
cmd
,但同时实际执行的是
命令

cmd.Parameters
更改为
command.Parameters
,这可能会使您启动并运行,但您必须清理代码。(您也有重复的连接实例,但这是无效的,因为它们甚至有相同的名称…)

这里有一个清理代码的快速尝试,但它正在运行中,因此您可能需要调整它以使其编译。
使用
块可确保您处置资源

try
{
    string connectionString = @" Data Source = c:\milap\milap.s3db; Version = 3";

    using (var conn = new SQLiteConnection(connectionString))
    {
        using (var cmd = new SQLiteCommand())
        {
            cmd.Connection = conn;
            cmd.CommandText = "select VC1ON from table where trim(key)= @KEY";

            conn.Open();

            cmd.Parameters.AddWithValue("@KEY", key.Text);
            var reader = cmd.ExecuteReader();

            while (reader.Read())
                ON1.Text = reader["VC1ON"].ToString();
        }
    }
}
catch (Exception ex)
{
     MessageBox.Show(ex.Message);
}

谢谢你,格兰特!它就像一个符咒。我知道问题出在哪里?!什么改变了?!谢谢你,格兰特!它就像一个符咒。我知道问题出在哪里?!什么改变了?!谢谢你,格兰特!它就像一个符咒。我知道问题出在哪里?!什么改变了?!谢谢你,格兰特!它就像一个符咒。我知道问题出在哪里?!什么改变了?!