public partial class stusearchinfo : Form
{
int firsttime = 0;
DataSet ds;
public stusearchinfo()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.dataGridView1.Top = this.textBox1.Top + this.textBox1.Height; if (firsttime == 0)
{
firsttime = 1;
getData();
} if (textBox1.Text ==" ")
{
if (ds.Tables[0].DefaultView.Count != 0)
dataGridView1.Visible = true;
} ds.Tables[0].DefaultView.RowFilter = "学号 like'" + textBox1.Text.Trim() + "%'"; if (ds.Tables[0].DefaultView.Count != 0)
{
dataGridView1.Visible = true;
dataGridView1.CurrentCell = dataGridView1[0, 0];
} if(ds.Tables[0].DefaultView.Count == 0)
dataGridView1.Visible =false;
} private void getData()
{
SqlConnection cmd11 = new SqlConnection("data source = 127.0.0.1;uid=sa;pwd=123;initial catalog=REMIS");
try
{
cmd11.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT bh AS '学号', xm AS '姓名', khks AS '考核科室', rksj AS '入科时间', cksj AS '出科时间',kspd AS '科室评定', llcj AS '理论成绩', blcj AS '病历书写成绩', jnpf AS '操作技能评分', bz AS '备注' FROM dbo.sxscj", cmd11);
ds = new DataSet();
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show("error!" + ex.ToString());
Application.Exit();
}
finally
{
cmd11.Close(); }
this.dataGridView1.DataSource = ds.Tables[0].DefaultView; } private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
this.textBox1.Text = this.dataGridView1.CurrentCell.Value.ToString();
this.dataGridView1.Visible = false;
} private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.textBox1.Text = this.dataGridView1.CurrentCell.Value.ToString();
this.dataGridView1.Visible = false;
}
} private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
dataGridView1.Focus();
if (dataGridView1.CurrentRow.Index + 1 < dataGridView1.Rows.Count)
{
dataGridView1.CurrentCell = dataGridView1[0, dataGridView1.CurrentRow.Index + 1];
}
} if (e.KeyCode == Keys.Enter)
{
this.textBox1.Text = this.dataGridView1.CurrentCell.Value.ToString();
this.dataGridView1.Visible = false;
}
} private void stusearchinfo_Load(object sender, EventArgs e)
{ } private void fillToolStripButton_Click(object sender, EventArgs e)
{
try
{
this.sxscjTableAdapter.Fill(this.searchgradeview.sxscj);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
} } }
这个事关于在一个textbox里面输入一个学生编号(数据库里为int型)来取自datagradview的数据进行显示,在我输入的时候出现这个错误:无法在 System.Int32 和 System.String 上执行“Like”操作。
请帮我检查下
还有帮我加上一个检测没有该学号报错的语句。谢谢
{
int firsttime = 0;
DataSet ds;
public stusearchinfo()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.dataGridView1.Top = this.textBox1.Top + this.textBox1.Height; if (firsttime == 0)
{
firsttime = 1;
getData();
} if (textBox1.Text ==" ")
{
if (ds.Tables[0].DefaultView.Count != 0)
dataGridView1.Visible = true;
} ds.Tables[0].DefaultView.RowFilter = "学号 like'" + textBox1.Text.Trim() + "%'"; if (ds.Tables[0].DefaultView.Count != 0)
{
dataGridView1.Visible = true;
dataGridView1.CurrentCell = dataGridView1[0, 0];
} if(ds.Tables[0].DefaultView.Count == 0)
dataGridView1.Visible =false;
} private void getData()
{
SqlConnection cmd11 = new SqlConnection("data source = 127.0.0.1;uid=sa;pwd=123;initial catalog=REMIS");
try
{
cmd11.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT bh AS '学号', xm AS '姓名', khks AS '考核科室', rksj AS '入科时间', cksj AS '出科时间',kspd AS '科室评定', llcj AS '理论成绩', blcj AS '病历书写成绩', jnpf AS '操作技能评分', bz AS '备注' FROM dbo.sxscj", cmd11);
ds = new DataSet();
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show("error!" + ex.ToString());
Application.Exit();
}
finally
{
cmd11.Close(); }
this.dataGridView1.DataSource = ds.Tables[0].DefaultView; } private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
this.textBox1.Text = this.dataGridView1.CurrentCell.Value.ToString();
this.dataGridView1.Visible = false;
} private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.textBox1.Text = this.dataGridView1.CurrentCell.Value.ToString();
this.dataGridView1.Visible = false;
}
} private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
dataGridView1.Focus();
if (dataGridView1.CurrentRow.Index + 1 < dataGridView1.Rows.Count)
{
dataGridView1.CurrentCell = dataGridView1[0, dataGridView1.CurrentRow.Index + 1];
}
} if (e.KeyCode == Keys.Enter)
{
this.textBox1.Text = this.dataGridView1.CurrentCell.Value.ToString();
this.dataGridView1.Visible = false;
}
} private void stusearchinfo_Load(object sender, EventArgs e)
{ } private void fillToolStripButton_Click(object sender, EventArgs e)
{
try
{
this.sxscjTableAdapter.Fill(this.searchgradeview.sxscj);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
} } }
这个事关于在一个textbox里面输入一个学生编号(数据库里为int型)来取自datagradview的数据进行显示,在我输入的时候出现这个错误:无法在 System.Int32 和 System.String 上执行“Like”操作。
请帮我检查下
还有帮我加上一个检测没有该学号报错的语句。谢谢
解决方案 »
- 求基于控制台的c#串口通信程序,需要事件触发机制的
- 有比timer刷新还快的办法么
- 又有新问题了!!再线等
- 图像处理问题 如何 找两个临近颜色块呢?
- 怎么实现webBrowser自动刷新网页
- myDataSet.Relations.Add(myDataSet.Tables["blog_LinkCategories"].Columns["CategoryID"],...)
- C# 访问项目 内容(Content)文件
- 请问c#如果调用Shell32.dll实现打印功能
- 初学C#,高手来推荐推荐好书吧
- 北京C#程序员工资
- 程序无法正常退出的问题?
- C# 如何在DataGridView中的DataGridViewTextBoxColumn列添加鍵盤降響應
或者:
SqlDataAdapter da = new SqlDataAdapter("SELECT convert(varchar(20),bh) AS '学号', xm AS '姓名', khks AS '考核科室', rksj AS '入科时间', cksj AS '出科时间',kspd AS '科室评定', llcj AS '理论成绩', blcj AS '病历书写成绩', jnpf AS '操作技能评分', bz AS '备注' FROM dbo.sxscj", cmd11); 另外不要在数据源中给中文列名,看起来很不方便。你可以单独给dataGridView1的每个列设置中文的标题。我怎么感觉是在模拟一个下拉表格的显示啊,真难为你了,没必要做的那么花销的,我宁可选择使用第三方控件来实现这种效果。
此人似乎脑子不正常了,字符串拼接的过程中转换到Int型又有什么意义?还是会自动转换回String类型的。
在LIKE那里面只能是字符!!!
因为它要防止textBox1.Text中有SQL注入内容。连这个都不了解,就很难说可以“正常”地进行SQL数据库方面的编程了。
{
firsttime = 1;
getData();
} 的这个getData方法,应该插入查询条件,然后从数据库条件查询。把数据全都取到内存来,然后在内存中做过滤,在csdn上也很难见到如此低效的程序设计的。
两个事件你试下 我记得好想试KeyUp时间