C#高手来帮我看看!windows窗体应用程序!

我做的一个简单的注册窗体,注册数字和英文可以成功注册。要是输入中文,它就耍赖不运行了。
后台代码:
using System;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace QQ
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string strconn = "Data Source=JUNJUNMYLOVE-PC;Initial Catalog=ZHUCE;Persist Security Info=True;User ID=sa;pwd=123";
SqlConnection conn = new SqlConnection(strconn);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText =" select * from zc where na=" + textBox1 .Text ;
cmd.Connection = conn;
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read() == true )
{
MessageBox .Show ("此帐号已经被注册!");
}
else
{
dr.Close();
if (textBox1.Text.Trim() != "")
{
if (textBox2.Text.Trim() != "")
{
string sql = "insert into zc(na,pwd) values('" + textBox1.Text + "','" + textBox2.Text + "')";
SqlCommand com = new SqlCommand(sql, conn);
com.ExecuteNonQuery();
MessageBox.Show("恭喜注册成功!");
}
else
{
MessageBox.Show("密码不能为空!");
}
}
else
{
MessageBox.Show("账号不能为空错误!");
}
}
}
}
}

cmd.CommandText =" select * from zc where na=" + textBox1 .Text ;有问题啊!!!
SQL语句中string是‘XXX’.单引号少了。
cmd.CommandText =" select * from zc where na=‘" + textBox1 .Text +“’”;

这样也不是最好的,有可能会有注入的麻烦
最好:
cmd.CommandText = "select * from zc where na=@Name";
cmd.Parameters.Add(new SqlParameter("Name", this.textBox1.Text));

还有一点就是对于数据库操作啊最好用上try。。。catch还有就是using来实现IDisposable接口。。。追问

用try和catch怎样?帮帮忙!

追答

如果继续的话,那个你能不能QQ:1036323569这个这样比较累

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-04
你把这一行修改一下吧:cmd.CommandText =" select * from zc where na=" + textBox1 .Text ;

改成:
cmd.CommandText =" select * from zc where na=‘" + textBox1 .Text .Trim()+"'";追问

不行

第2个回答  2011-05-04
cmd.CommondText="select * from zc where na='"+textBox1.Text+"' "
换成这个就好了,你给你的na赋值的时候缺少单引号

VS2019无法创建Windows窗体应用程序(C#)
1、首先在电脑中打开C#,点击左上角的新建选项,如下图所示。2、之后在打开的下拉菜单中,选择新建,新建项目,如下图所示。3、然后在打开的新建项目窗口中,选择VsiualC#选项,如下图所示。4、接着在打开的页面中,选择windows窗体应用程序,如下图所示。5、最后就完成了,如下图所示。

C#高手来帮我看看!windows窗体应用程序!
最好:cmd.CommandText = "select * from zc where na=@Name";cmd.Parameters.Add(new SqlParameter("Name", this.textBox1.Text));还有一点就是对于数据库操作啊最好用上try。。。catch还有就是using来实现IDisposable接口。。。

c#设计一个Windows窗体应用程序,要求输入成绩计算某个学生
1. 在窗体上添加三个文本框,分别用于输入三门功课的成绩;2. 添加一个按钮,点击后触发计算奖学金的事件;3. 在事件中,获取文本框中输入的成绩,计算平均分,并判断是否符合获奖条件;4. 根据符合的条件,显示该学生获得的奖项。代码示例:```csharp private void btnCalculate_Click(object sender...

用C#语言编写windows窗体应用程序
控件如图,由左到右,由上到下,分别命名为b1,b2,b3,b4,l1,l2,button1,button2,timer1,timer2 timer1与timer2的Enabled的属性默认为false,Interval默认为1000,后代代码如下 bool Isopen = false;int b2Times = 0;int b3Times = 0;int onebreak = 0;private void b1_Click(object sender, Ev...

C#的windows窗体应用
我已经帮做了一个程序代码如下:首先建立一个WinForm程序。会一个默认窗体Form1 添加控件NotifyIcon 设置属性 notifyIcon1.Visible = false;双窗体,出现窗体的Load事件Form1_Load,另外添加窗体的FormClosing事件Form1_FormClosing。详细代码都在下面。再添加notifyIcon1的DoubleClick事件notifyIcon1_DoubleClick ...

用C#写的window窗体应用程序,怎样让它在开机的时候自动启动?
private void 启用ToolStripMenuItem_Click(object sender, EventArgs e) {\/\/获取程序执行路径..string starupPath = Application.ExecutablePath;\/\/class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.RegistryKey loca = Registry.LocalMachine;RegistryKey run = loca.CreateSub...

visual studio 2010怎么创建windows窗体应用程序
在使用Visual Studio 2010创建Windows窗体应用程序时,首先需要在右侧的已安装模板中选择Visual C#。在该界面右侧,会显示出多种项目类型。在这里,你应该找到并选择Windows窗体应用程序。默认情况下,创建项目后会自动生成一个窗体文件。该窗体是主启动窗体,程序运行开始时会先运行这个窗体。如果需要对窗体...

c#,我需要创建一个Windows窗体应用程序,要求对文本框内输入的三个数...
private void button1_Click(object sender, EventArgs e){ \/\/获取文本框的值 string txt1 = textBox1.Text;string txt2 = textBox2.Text;string txt3 = textBox3.Text;\/\/定义转换时存储的整形变量(如果是浮点型自行替换)int num1 = 0;int num2 = 0;int num3 = 0;int result = 0;...

C#2008 Windows窗体应用程序
e) { FormMessage formMesage = new FormMessage(); formMesage.Show(); this.Hide(); }。。你关掉这个启动窗体,程序会退出的,兄弟

谁能帮我做一个简单的c#窗体应用程序?
打开VS2008或者2005.新建一个“windows窗体应用程序”,默认情况下有一个窗体Form1,从左边工具箱拖动一个button放入窗体Form1,双击窗体Form1,进入Form1.cs文件,在private void Form1_Load(object sender, EventArgs e){}方法里初始化变量count;就是int count = 0;然后切换到Form1设计。。双击...

相似回答
大家正在搜