executescalar,怎么查询mysql表中数据有多少条?
SELECT COUNT(ID) FROM TableName
用ado.net中的executeScalar执行,直接返回的就是总记录
第二种:
SELECT * FROM TableName
用ado.net中的executeQuery执行,现返回一个dataTable的结果集,然后获取这个dataTable结果集的总行数!这个总行数就是总记录数
net中设计一个登录网站?
设计登录窗口的思想是这样的: 一、在加载主窗口时候(即Load事件中)加载登录窗口 二、在登录窗口中点击“登录”按钮时候发生下面的事情 1.声明变量userName并获取用户名文本框输入的内容,声明变量pwd并获取密码文本框输入的内容。 2.判断userName是否为空,如果为空,则提示输入并结束事件,判断pwd是否为空,如果为空,则提示输入并结束事件 3.用ADO.NET操作数据库,查找是否有对应输入的用户名和密码,如果有,将关闭登录窗口,如果没有,则提示用户名和密码错误。 设MSSQL数据库中有数据库test1,里面有表users,表中有字段username和pwd。 主窗口中的Load事件中的代码为: Login fm = new Login();//创建登录窗口 if (fm.ShowDialog() == DialogResult.OK)//判断登录是否成功 登录窗口中“登录”按钮的代码为: //要先引用using System.Data.sqlClient; string userName = textBox1.Text; string pwd = textBox2.Text; if (userName == string.Empty )//判断用户名的文本框是否有输入内容{MessageBox.Show("请输入用户名!");//提示输入用户名 return;//跳出事件,不执行下面的代码}else if (pwd == string.Empty){MessageBox.Show("请输入密码!");return;}//下面是ADO.NET对数据库进行操作,查找是否有用户名和密码相符的记录,如果有,设置tag为1,表示登录成功 SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=test1;Integrated Security=True"); conn.Open(); string sql = string.Format("select count(*) from users where username='{0}' and pwd='{1}'",userName,pwd); SqlCommand comm = new SqlCommand(sql,conn); int tag = 0; if ((int)comm.ExecuteScalar() 0)tag = 1;conn.Close(); if (tag == 1)//判断是否登录成功{this.DialogResult = DialogResult.OK; this.Close();}else{MessageBox.Show("密码错误!");} 以上就是主要的代码和内容了。 说一下你的数据库中的表名使用有问题,不能用user作为表名,因为这是个关键字,用的话会出错的。建议你用users或其他的。 这里有参考源代码,外链是 以上信息希望对你有帮助。^^
sql数据库中word文档的保存和读取?
要实现在sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为:
CREATE TABLE CONTRACTS (
ID VARCHAR (50),
CONTRACT_FILE IMAGE
);
要将Word文件存储到数据库的CONTRACT_FILE字段中,需要将文件转换为byte数组,具体代码如下:
将文件转换为byte数组
1 /// <summary>
2 /// 将文件转换为Bytes
3 /// </summary>
4 /// <param name="fileName"></param>
5 /// <returns></returns>
6 public static byte[] File2Bytes(string fileName)
7 {
8 FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Read);
9 byte[] fileDatas = new byte[fs.Length];
10 fs.Read(fileDatas, 0, System.Convert.ToInt32(fs.Length));
11 fs.Close();
12 return fileDatas;
13 }
然后将转换完成的byte[]存储到数据库的对应字段:
将文件存储到数据库
1 /// <summary>
2 /// 更新合同文件
3 /// </summary>
4 /// <param name="id"></param>
5 /// <param name="fileBytes"></param>
6 /// <returns></returns>
7 public bool UpdateContractFile(string id, byte[] fileBytes)
8 {
9 string sql = "UPDATE CONTRACTS SET CONTRACT_FILE=@CONTRACT_FILE WHERE ID=@ID";
10 using (SqlConnection conn = new SqlConnection(this.m_DataAccess.ConnectString))
11 {
12 conn.Open();
13 using (SqlCommand cmd = new SqlCommand())
14 {
15 cmd.Connection = conn;
16 cmd.CommandText = sql;
17 cmd.Parameters.Clear();
18
19 cmd.Parameters.Add(new SqlParameter("@CONTRACT_FILE", SqlDbType.Image));
20 cmd.Parameters["@CONTRACT_FILE"].Value = fileBytes;
21
22 cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.VarChar));
23 cmd.Parameters["@ID"].Value = id;
24
25 return cmd.ExecuteNonQuery() > 0 ? true : false;
26 }
27 }
28 }
然后将转换完成的byte[]存储到数据库的对应字段:
将文件存储到数据库
1 /// <summary>
2 /// 更新合同文件
3 /// </summary>
4 /// <param name="id"></param>
5 /// <param name="fileBytes"></param>
6 /// <returns></returns>
7 public bool UpdateContractFile(string id, byte[] fileBytes)
8 {
9 string sql = "UPDATE CONTRACTS SET CONTRACT_FILE=@CONTRACT_FILE WHERE ID=@ID";
10 using (SqlConnection conn = new SqlConnection(this.m_DataAccess.ConnectString))
11 {
12 conn.Open();
13 using (SqlCommand cmd = new SqlCommand())
14 {
15 cmd.Connection = conn;
16 cmd.CommandText = sql;
17 cmd.Parameters.Clear();
18
19 cmd.Parameters.Add(new SqlParameter("@CONTRACT_FILE", SqlDbType.Image));
20 cmd.Parameters["@CONTRACT_FILE"].Value = fileBytes;
21
22 cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.VarChar));
23 cmd.Parameters["@ID"].Value = id;
24
25 return cmd.ExecuteNonQuery() > 0 ? true : false;
26 }
27 }
28 }
要读取数据库中存储的Word文件,需要先将Image类型的字段转换为bytes[],具体代码如下:
通过ID获取文件byte数组
1 /// <summary>
2 /// 获取合同文件
3 /// </summary>
4 /// <param name="id"></param>
5 /// <returns></returns>
6 public byte[] GetContractFile(string id)
7 {
8 string sql = "SELECT CONTRACT_FILE FROM CONTRACTS WHERE ID='{0}'";
9 sql = string.Format(sql, id);
10 object contractFile;
11 contractFile = this.m_DataAccess.ExecuteScalar(sql);
12 if (contractFile == null)
13 {
14 return new byte[0];
15 }
16 else
17 {
18 return (byte[])contractFile;
19 }
20 }
在获取到文件的byte[]后,将该文件通过文件流操作存储为Word文件,具体代码如下:
将byte[]数组存储为Word文件
1 byte[] fileBytes = this.m_ContractsBusiness.GetContractFile(id);
2 if (fileBytes.Length == 0)
3 {
4 XMessageBox.ShowError("未找到合同文件!");
5 return;
6 }
7 SaveFileDialog sfd = new SaveFileDialog();
8 sfd.Filter = "Word文件(*.doc)|*.doc";
9 if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
10 {
11 try
12 {
13 string saveFileName = sfd.FileName;
14 int arraysize = new int();//注意这句话
15 arraysize = fileBytes.GetUpperBound(0);
16 FileStream fs = new FileStream(saveFileName, FileMode.OpenOrCreate, FileAccess.Write);
17 fs.Write(fileBytes, 0, arraysize);
18 fs.Close();
19 if (XMessageBox.ShowQuestion("文件下载成功,是否立即打开文件?") ==
20 System.Windows.Forms.DialogResult.Yes)
21 {
22 Process.Start(saveFileName);
23 }
24 }
25 catch (Exception ex)
26 {
27 XMessageBox.ShowError("下载文件失败!");
28 }


还没有评论,来说两句吧...