当前位置:编程学习 > C#/ASP.NET >>

关于SQL数据库的一个小白问题:

关于SQL数据库的一个小白问题:  
我在J#的查询编辑器里搞了下面的查询   

SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期   
FROM student   
WHERE (学号 = '11')   
这样就把学号为11的学生找出来了,现在问题来了,我想从textBox1中输入一个学号,然后传给WHERE,怎么传哦?我怎么改都不行...郁闷...   

SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期   
FROM student   
WHERE (学号 = '"+this.textBox1.get_Text()+"')  (失败!)   

SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期   
FROM student   
WHERE (学号 = '"+textBox1.get_Text()+"')  (失败!)   

SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期   
FROM student   
WHERE (学号 = ''+textBox1.text.ToString())  (还是失败!)   
哪位牛人帮帮我...万分感激!!!   
--------------------编程问答-------------------- string sql="SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期 FROM student WHERE (学号 =@xx);

SqlCommand cmd=new SqlCommand(cmd,Conn);
SqlParameter p=new SqlParameter("@xx",SqlDataType.Varchar);
p.Value=textBox1.Text;
cmd.Parameters.Add(p);

cmd.ExecuteReader(); --------------------编程问答-------------------- 失败的错误是什么 --------------------编程问答-------------------- 失败的错误就是无法获取学号为11的学生,可是我在textBox1里已经输了11了...
--------------------编程问答--------------------
引用 1 楼 ericzhangbo1982111 的回复:
string sql="SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期 FROM student WHERE (学号 =@xx); 

SqlCommand cmd=new SqlCommand(cmd,Conn); 
SqlParameter p=new SqlParameter("@xx",SqlDataType.Varchar); 
p.Value=textBox1.Text; 
cmd.Parameters.Add(p); 

cmd.ExecuteReader();


正解! --------------------编程问答-------------------- 数据类型错误吧。 --------------------编程问答-------------------- string query="SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期  FROM student WHERE 学号 = '"+textBox1.text.trim()+"'";

不需要什么括号    --------------------编程问答-------------------- 2楼的方法貌似不行....我是在J#环境下编的,我import java.sql.*后再输入你那个语句会提示错误,SqlCommand没有这个函数或方法....
J#里自带了一个查询编辑器,是图形化的,它会自动添加代码...只是WHERE后的要自己加进去

我WHERE (学号 = '11')就可以找到学号为11的学生
但是WHERE (学号 = '"+textBox1.get_Text()+"')等返回的都是NULL,而我textBox1里已经输入了11 --------------------编程问答-------------------- 段点,跟踪,把程序的sql ,在查询分析器里执行下,就知道原因了 --------------------编程问答-------------------- 用存储过程吧,拼写sql是很不安全的 --------------------编程问答-------------------- 要括号的![img=http://hi.baidu.com/squid007/album/item/6df5638d2d55db01b21bba49.html][/img] --------------------编程问答-------------------- 汗..图片上传不了....郁闷... --------------------编程问答-------------------- 我再传一遍 --------------------编程问答-------------------- 肯定是数据类型的错误,自己看看数据库型
get_Text()这个东西我怎么没见过。自己写的吗 --------------------编程问答-------------------- import java.sql.sqlClient;试试 --------------------编程问答--------------------
引用 7 楼 squid007 的回复:
2楼的方法貌似不行....我是在J#环境下编的,我import java.sql.*后再输入你那个语句会提示错误,SqlCommand没有这个函数或方法.... 
J#里自带了一个查询编辑器,是图形化的,它会自动添加代码...只是WHERE后的要自己加进去 

我WHERE (学号 = '11')就可以找到学号为11的学生 
但是WHERE (学号 = '"+textBox1.get_Text()+"')等返回的都是NULL,而我textBox1里已经输入了11


import java.sql.sqlClient;试试 --------------------编程问答-------------------- 而且,你原来的sql语句是错误的!应该是这样的:
SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期    
FROM student    
WHERE 学号 = '"+this.textBox1.get_Text()+"'";
不过这样容易被注入,还是加参数的比较安全! --------------------编程问答-------------------- 依然不行......... --------------------编程问答-------------------- 而且import java.sql.后面就没有sqlClient这个东东.... --------------------编程问答-------------------- 还有,我的编程环境是J#,它几乎全是图形化操作,自己几乎不用加代码........截图里WHRER以上的所有代码是它自动生成的,WHERE (学号='11')是我自己添加的,运行后通过了 
改成WHERE (学号='"+textBox1.get_Text()+"')就不行了,我估计这里把"+textBox1.get_Text()+"整个当成一个字符串来判断了,也就是它根本没有去读取Form1.textBox1里的内容~~
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,