如何解决从C#和ADO.NET创建Crystal报表
| 我需要从我的员工数据库项目中创建一个水晶报表,这意味着每当我单击“报表”按钮时,都会生成该所选员工的报表并显示给用户,该怎么做?这是我的代码using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
MessageBox.Show(\"Welcome To Employee Database!\",\"Welcome\",MessageBoxButtons.OK,MessageBoxIcon.Information);
InitializeComponent();
}
string flag;
SqlConnection a = new SqlConnection(\"Data Source=PRISLOGI-57EEC\\\\SQLEXPRESS;Initial Catalog=mydb;Integrated Security=True\");
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
BindingSource bs = new BindingSource();
private void button1_Click(object sender,EventArgs e)
{
try
{
a.Open();
da.InsertCommand = new SqlCommand(\"Insert into tbl1 (ID,FirstName,LastName) values (@id,@fn,@ln)\",a);
da.InsertCommand.Parameters.AddWithValue(\"@id\",textBox1.Text);
da.InsertCommand.Parameters.AddWithValue(\"@fn\",textBox2.Text);
da.InsertCommand.Parameters.AddWithValue(\"@ln\",textBox3.Text);
//da.SelectCommand = new SqlCommand(\"SELECT * FROM tbl1\",a);
da.InsertCommand.ExecuteNonQuery();
ds.Clear();
da.Fill(ds,\"tbl1\");
dataGridView1.DataSource = ds.Tables[\"tbl1\"];
flag = \"1\";
if (flag == \"1\")
{
MessageBox.Show(\"Data inserted\");
Reset();
}
a.Close();
}
catch (Exception ex)
{
MessageBox.Show(\"Data cannot insert\" + ex);
}
}
private void button2_Click(object sender,EventArgs e)
{
try
{
a.Open();
da.InsertCommand = new SqlCommand(\"UPDATE tbl1 SET FirstName = @fn,LastName = @ln WHERE ID = @id\",a);
da.InsertCommand.Parameters.AddWithValue(\"@id\",textBox1.Text);
da.InsertCommand.Parameters.AddWithValue(\"@fn\",textBox2.Text);
da.InsertCommand.Parameters.AddWithValue(\"@ln\",textBox3.Text);
//da.SelectCommand = new SqlCommand(\"SELECT * FROM tbl1\",a);
da.InsertCommand.ExecuteNonQuery();
ds.Clear();
da.Fill(ds,\"tbl1\");
dataGridView1.DataSource = ds.Tables[\"tbl1\"];
a.Close();
flag = \"1\";
if (flag == \"1\")
{
MessageBox.Show(\"Data updated\");
Reset();
}
}
catch (Exception ex)
{
MessageBox.Show(\"Data cannot update\" + ex);
}
}
private void button3_Click(object sender,EventArgs e)
{
try
{
a.Open();
da.InsertCommand = new SqlCommand(\"DELETE FROM tbl1 WHERE ID = @id\",textBox1.Text);
if ((MessageBox.Show(\"are you sure u want to delete\",\"Delete\",MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes))
{
//da.SelectCommand = new SqlCommand(\"SELECT * FROM tbl1\",\"tbl1\");
dataGridView1.DataSource = ds.Tables[\"tbl1\"];
flag = \"1\";
if (flag == \"1\")
{
MessageBox.Show(\"Data deleted\");
Reset();
}
}
a.Close();
}
catch (Exception ex)
{
MessageBox.Show(\"Data cannot delete\" + ex);
}
}
private void button4_Click(object sender,EventArgs e)
{
a.Open();
da.SelectCommand = new SqlCommand(\"SELECT * FROM tbl1\",a);
da.SelectCommand.ExecuteNonQuery();
a.Close();
ds.Clear();
da.Fill(ds,\"tbl1\");
dataGridView1.DataSource = ds.Tables[\"tbl1\"];
bs.DataSource = ds.Tables[\"tbl1\"];
textBox1.DataBindings.Add(new Binding(\"Text\",bs,\"ID\"));
textBox2.DataBindings.Add(new Binding(\"Text\",\"FirstName\"));
textBox3.DataBindings.Add(new Binding(\"Text\",\"LastName\"));
}
public void Reset()
{
textBox1.Text =
textBox2.Text =
textBox3.Text = string.Empty;
}
private void button5_Click(object sender,EventArgs e)
{
bs.MoveNext();
selectRow();
}
private void button6_Click(object sender,EventArgs e)
{
bs.MovePrevious();
selectRow();
}
private void button7_Click(object sender,EventArgs e)
{
bs.MoveFirst();
selectRow();
}
private void button8_Click(object sender,EventArgs e)
{
bs.MoveLast();
selectRow();
}
public void selectRow()
{
dataGridView1.ClearSelection();
dataGridView1.Rows[bs.Position].Selected = true;
}
private void label4_Click(object sender,EventArgs e)
{
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。