c#参数问题请教

lichenbo 2014-09-20 08:49:31
第一步我写可一个SqlHelper,代码如下
namespace SqlHelper
{
class SqlHelper2
{
private static string constr = ConfigurationManager.ConnectionStrings["dbconstr"].ConnectionString;
//从APP.config文件读取数据库连接字符串
public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters)
//以上语句是定义数据库操作方法,并定义了执行语句参数和不定长度变量
{
using (SqlConnection conn = new SqlConnection(constr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
}
}
}
第二步我在WPF 界面中添加了两个textbox 和一个button 控件,在button的click 事件中执行如下代码,
想实现将两个textbox 中的 值 通过上面定义的参数传入数据库中。代码如下
private void Button_Click_1(object sender, RoutedEventArgs e)
{
SqlHelper2.ExecuteNonQuery("insert into z_qx(xm,mm) values(@name,@pass)",tbname.Text,tbpsss.Text);
}
我知道的写法不对,请各位指点button的click 事件中代码怎么写才对?????????
...全文
212 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Satroki 2014-09-20
  • 打赏
  • 举报
回复
引用 6 楼 lichenbo 的回复:
但是按我这么写,程序报错。代码如下 public string p1 = new SqlParameter("@name", tbname.Text); public string p2 = new SqlParameter("@pass", tbpass.Text);
public SqlParameter p1 { get { return new SqlParameter("@name", tbname.Text); } }
用属性试试
lichenbo 2014-09-20
  • 打赏
  • 举报
回复
引用 4 楼 xyl2902 的回复:
引用 3 楼 lichenbo 的回复:
但是我还有一个问题 :如何把p1 ,@name 定义为public 参数 ,在其他的事件中都能调用p1和@name
什么意思……直接定义成类的字段或者属性?
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);
我叫小菜菜 2014-09-20
  • 打赏
  • 举报
回复
引用 3 楼 lichenbo 的回复:
[quote=引用 1 楼 xyl2902 的回复:] 把两个Text转成SqlParameter再传进去
var p1 = new SqlParameter("@name", tbname.Text);
按照你的的提示,我写如下代码,成功 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[/quote] “其他事件”指的是同一个窗体,还是不同窗体? 同一个窗体: 在该窗体类中,定义成员变量: private string p1=...... 不同窗体: 需要使用到窗体间传值:请看winform窗体间传值问题[/color" target="_blank">http://bbs.csdn.net/topics/390888923[color=#FF0000]]winform窗体间传值问题[/color
Satroki 2014-09-20
  • 打赏
  • 举报
回复
引用 3 楼 lichenbo 的回复:
但是我还有一个问题 :如何把p1 ,@name 定义为public 参数 ,在其他的事件中都能调用p1和@name
什么意思……直接定义成类的字段或者属性?
lichenbo 2014-09-20
  • 打赏
  • 举报
回复
引用 1 楼 xyl2902 的回复:
把两个Text转成SqlParameter再传进去
var p1 = new SqlParameter("@name", tbname.Text);
按照你的的提示,我写如下代码,成功 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
EdsionWang 2014-09-20
  • 打赏
  • 举报
回复
你这代码能不报错吗?你给ExecuteNonQuery的参数类型跟你SQLHelper里面定义的都不一样。如一楼所说,把p1当参数传进去
Satroki 2014-09-20
  • 打赏
  • 举报
回复
把两个Text转成SqlParameter再传进去
var p1 = new SqlParameter("@name", tbname.Text);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧