【问题标题】:Connection property has not been initialized连接属性尚未初始化
【发布时间】:2015-02-17 11:42:03
【问题描述】:

我在列表视图中有数据访问者。 我的xml是

<ListView x:Name="listVisitor"  ItemsSource="{Binding}" HorizontalAlignment="Left"
          Height="582" Margin="110,65,0,0" VerticalAlignment="Top" Width="924"
          Grid.ColumnSpan="3" />`
<Button Content="Delete Visitor" Name="Delete" Foreground="white"
        HorizontalAlignment="Left" Margin="236,674,0,0" VerticalAlignment="Top"
        Width="310" Height="30" Background="#FF1CA0B7" Grid.Column="1"
        Click="Delete_Click"/>`

我已经连接到数据库并创建代码来删除数据访问者

代码:

private void Delete_Click(object sender, RoutedEventArgs e)`
{
    if (listVisitor.SelectedItems.Count > 0)
    {
        var connectionString = new ConnectionString();
        var conn = new SqlConnection(connectionString.ViMS_LOCAL());

        DataRowView drv = (DataRowView)listVisitor.SelectedItem;
        string visitorno = drv.Row[0].ToString();

        conn.Open();
        SqlCommand cmd = new SqlCommand("Delete FROM dbo.[Visitor.Profile] Where VisitorNo=@VisitorNo");
        SqlDataAdapter sda = new SqlDataAdapter(cmd);

        cmd.Parameters.AddWithValue("@VisitorNo", visitorno);
        cmd.ExecuteNonQuery();
        BindData();

        }
    }

它显示错误ExecuteNonQuery:连接属性尚未初始化。 如何解决这个问题

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您必须在调用ExectueNonQuery() 之前设置SqlCommand 对象的Connection 属性。例如:

    conn.Open()
    SqlCommand cmd = new SqlCommand("Delete FROM dbo.[Visitor.Profile] Where VisitorNo=@VisitorNo");
    cmd.Parameters.AddWithValue("@VisitorNo", visitorno);
    cmd.Connection = conn; // <- Set the connection
    cmd.ExecuteNonQuery();
    

    或者你可以在构造函数中传递它:

    SqlCommand cmd = new SqlCommand(
                        "Delete FROM dbo.[Visitor.Profile] Where VisitorNo=@VisitorNo", 
                         conn);
    

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 2011-07-22
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多