解决方案 »

  1.   

    把两个Text转成SqlParameter再传进去var p1 = new SqlParameter("@name", tbname.Text);
      

  2.   

    你这代码能不报错吗?你给ExecuteNonQuery的参数类型跟你SQLHelper里面定义的都不一样。如一楼所说,把p1当参数传进去
      

  3.   


    按照你的的提示,我写如下代码,成功
     private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                var p1 = new SqlParameter("@name", tbname.Text);
                var p2 = new SqlParameter("@pass", tbpass.Text);     
                SqlHelper2.ExecuteNonQuery("insert into z_qx(xm,mm) values(@name,@pass)",p1,p2);
                MessageBox.Show("数据插入成功!!");
            }但是我还有一个问题 :如何把p1 ,@name 定义为public 参数 ,在其他的事件中都能调用p1和@name
      

  4.   


    按照你的的提示,我写如下代码,成功
     private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                var p1 = new SqlParameter("@name", tbname.Text);
                var p2 = new SqlParameter("@pass", tbpass.Text);     
                SqlHelper2.ExecuteNonQuery("insert into z_qx(xm,mm) values(@name,@pass)",p1,p2);
                MessageBox.Show("数据插入成功!!");
            }但是我还有一个问题 :如何把p1 ,@name 定义为public 参数 ,在其他的事件中都能调用p1和@name“其他事件”指的是同一个窗体,还是不同窗体?
    同一个窗体:
    在该窗体类中,定义成员变量:
    private string p1=......不同窗体:
    需要使用到窗体间传值:请看winform窗体间传值问题
      

  5.   


    namespace SqlHelper
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public string p1 = new SqlParameter("@name", tbname.Text);
            public string p2 = new SqlParameter("@pass", tbpass.Text);   
           
            public MainWindow()
            {
                InitializeComponent();
            }
          
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                //var p1 = new SqlParameter("@name", tbname.Text);
                //var p2 = new SqlParameter("@pass", tbpass.Text);     
                SqlHelper2.ExecuteNonQuery("insert into z_qx(xm,mm) values(@name,@pass)",p1,p2);
                MessageBox.Show("数据插入成功!!");
            }
            private void Button_Click_3(object sender, RoutedEventArgs e)
            {
                在这个事件中也能利用p1,@name参数来调用tbname.Text
            }
        }
    }但是按我这么写,程序报错。代码如下
    public string p1 = new SqlParameter("@name", tbname.Text);
     public string p2 = new SqlParameter("@pass", tbpass.Text);   
      

  6.   

    public SqlParameter p1 { get { return new SqlParameter("@name", tbname.Text); } }用属性试试