3

私はSQL Serverでこの手順を持っています:

create procedure AutoSearchTeamByMobile
@Team_Mobile int
As
select * from Team_Info where Team_Mobile like @Team_Mobile+'%';

そして、私はC#でこのコードを持っています:

private void textBoxX4_TextChanged(object sender, EventArgs e)
    {
        int tMobile= int.Parse(textBoxX4.Text);
        SqlCommand com = new SqlCommand("AutoSearchTeamByMobile", con);
        com.Parameters.Add("@Team_Mobile", SqlDbType.Int).Value = tMobile;
        com.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter();
        DataSet ds = new DataSet();
        da.SelectCommand = com;
        da.Fill(ds, "Team_Info");
        dataGridViewX1.DataSource = ds.Tables["Team_Info"];
    }

Team_Mobile私は携帯電話番号のリストを持っており、それらはデータ型としてと呼ばれる列に保存されていますint。そのうちの1つは「711......」で始まり、別の番号は「700......」で始まります。 '7' だけを書くとtextBoxX4、すべての数字 (711 または 700 で始まる) が に表示されるはずですが、dataGridViewX1'71' と書くと、'711' で始まる数字だけが に表示されdataGridViewX1ます。「70」と書くと、700 で始まる数字のみが に表示されdataGridViewX1ます。私は必要なものを手に入れませんでした。実際には、何もしなかったのと同じように何も見えませんでした。

私のニーズは、71 を書き込むと、Team_Mobile 列に 711 を持つすべてのレコードが引き続き表示され、他の番号が非表示になるはずです。

しかし、私はそれを行いTeam_Namesました.Team_NamesnvarcharTeam_Mobileint

SQL:

create procedure AutoSearchTeam
@Team_Name nvarchar (50)
As
select * from Team_Info where Team_Name like @Team_Name+'%';

C#:

    private void textBoxX1_TextChanged(object sender, EventArgs e)
    {
        string t_name = textBoxX1.Text;
        SqlCommand com = new SqlCommand("AutoSearchTeam", con);
        com.Parameters.Add("@Team_Name", SqlDbType.NVarChar, 50).Value = t_name;
        com.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter();
        DataSet ds = new DataSet();
        da.SelectCommand = com;
        da.Fill(ds, "Team_Info");
        dataGridViewX1.DataSource = ds.Tables["Team_Info"];
    }

私の質問は: とにかく%それを整数で使用するために置き換えることはありますか?

%上記で説明したものを取得するために整数で使用するには、何を置き換えることができますか?

私の英語で申し訳ありません。

4

3 に答える 3

5

たとえば、これ

SELECT * FROM Team_Info WHERE Team_Mobile LIKE CAST(@Team_Mobile AS NVARCHAR) + '%';
于 2013-10-31T21:23:43.483 に答える